プロジェクト

全般

プロフィール

Bug(バグ) #633

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

Youichi Kimura約14年前に追加. 約14年前に更新.

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

100%

3.6 で発生するか:
Unknown (未調査)
3.8 で発生するか:
Unknown (未調査)

説明

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
  • OpenPNE3.0.x

関連するチケット

関連している OpenPNE 3 - Backport(バックポート) #638: opValidatorDate with date_time option don't return time correctly. (opValidatorDateをwith_timeオプション付きで使用したとき時刻が違う値になる) Fixed(完了) 2010-02-13
関連している OpenPNE 3 - Backport(バックポート) #637: opValidatorDate with date_time option don't return time correctly. (opValidatorDateをwith_timeオプション付きで使用したとき時刻が違う値になる) Fixed(完了) 2010-02-13
関連している OpenPNE 3 - Bug(バグ) #754: opValidatorDate with max or min throw exception if the value is not array (opValidatorDateで配列を利用しないときにmax/minを設定しても例外を投げない) Fixed(完了) 2010-02-25 2010-03-04
関連している OpenPNE 3 - Backport(バックポート) #757: opValidatorDate with date_time option don't return time correctly. (opValidatorDateをwith_timeオプション付きで使用したとき時刻が違う値になる) Fixed(完了) 2010-02-13
関連している OpenPNE 3 - Bug(バグ) #1937: 日付のプロフィール項目で、管理画面で指定した上限の日が弾かれてしまう Fixed(完了)

関係しているリビジョン

リビジョン c4757fb1 (差分)
Youichi Kimura約14年前に追加

fixed that the opValidatorDate doesn't convert time correctly (fixes #633)

リビジョン d2636f1a (差分)
Shogo Kawahara約14年前に追加

added a unit test script for opValidatorDate (fixes #633)

リビジョン 9448de5f (差分)
Shogo Kawahara約14年前に追加

fixed unit test script for opValidatorDateTest (refs #633)

履歴

#1 Shogo Kawahara約14年前に更新

  • ステータスNew(新規) から Pending Fixing(修正待ち) に変更
  • 担当者Shogo Kawahara にセット

#2 Shogo Kawahara約14年前に更新

  • 対象バージョンOpenPNE 3.5.0 にセット

#3 Shogo Kawahara約14年前に更新

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

#4 Youichi Kimura約14年前に更新

  • ステータスPending Fixing(修正待ち) から Pending Review(レビュー待ち) に変更
  • 進捗率0 から 50 に変更

更新履歴commit:"c4757fb1d71783e692dfd65acd7e44e4874ed62d"で適用されました。

#5 Shogo Kawahara約14年前に更新

更新履歴commit:"d2636f1ade7d82b46b2ab347e52841a442b81ab9"で適用されました。

#6 Kousuke Ebihara約14年前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更

#7 Mutsumi Imamura約14年前に更新

  • 期日2010-03-04 にセット
  • ステータスPending Testing(テスト待ち) から Fixed(完了) に変更
  • 進捗率50 から 100 に変更

動作テストしました。問題ありません。

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