プロジェクト

全般

プロフィール

Backport(バックポート) #638

完了

opValidatorDate with date_time option don't return time correctly. (opValidatorDateをwith_timeオプション付きで使用したとき時刻が違う値になる)

Shogo Kawahara さんが14年以上前に追加. 14年以上前に更新.

ステータス:
Fixed(完了)
優先度:
Normal(通常)
担当者:
対象バージョン:
開始日:
2010-02-13
期日:
進捗率:

100%

予定工数:

説明

Overview (概要)

opValidatorDateをwith_timeオプション付きで使用したとき、時刻に「フォームで入力した時刻 + 現在時刻」の値が設定されてしまいます。

Cause (原因)

配列で時刻を受け取った時、opValidatorDateの挙動が正しくありません。

122       $clean->modify('+'.(isset($value['hour']) ? intval($value['hour']) : 0).'hour');
123       $clean->modify('+'.(isset($value['second']) ? intval($value['second']) : 0).'second');

ここは、 modify()で加算するのではなく、setTime()で時刻をセットするのが正しいでしょう。

Reproduction method (再現方法)

検証コード

$v = new opValidatorDate(array('with_time' => true));

var_dump($v->clean(array('year' => 1989, 'month' => 1, 'day' => 8, 'hour' => 10, 'minute' => 2, 'second' => 10)));

結果として、時刻が正しくない結果が帰ってきます。

(上記の場合、現時時刻に 10時間と10秒が加算される)

Environment (環境)

  • OpenPNE3.5.x
  • OpenPNE3.4.x
  • OpenPNE3.2.x

関連するチケット 1 (0件未完了1件完了)

関連している OpenPNE 3 - Bug(バグ) #633: opValidatorDate with date_time option don't return time correctly. (opValidatorDateをwith_timeオプション付きで使用したとき時刻が違う値になる)Fixed(完了)Shogo Kawahara2010-02-132010-03-04

操作

他の形式にエクスポート: Atom PDF