Backport(バックポート) #638
opValidatorDate with date_time option don't return time correctly. (opValidatorDateをwith_timeオプション付きで使用したとき時刻が違う値になる)
| Status: | Fixed(完了) | Start: | 2010-02-13 | |
|---|---|---|---|---|
| Priority: | Normal(通常) | Due date: | ||
| Assigned to: | % Done: | 100% |
||
| Category: | - | |||
| Target version: | OpenPNE 3.2.3 |
Description
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
Related issues
| related to OpenPNE 3 - Bug(バグ) #633: opValidatorDate with date_time option don't return time c... | Fixed(完了) | 2010-02-13 | 2010-03-04 |
Associated revisions
Revision 4959371b6cabf91fa2cbe4a9a7384fe586a5dffa
fixed that the opValidatorDate doesn't convert time correctly (fixes #638;BP from #633)
Revision 939e93244859d2c0105aaed7e6de26cef8981802
added a unit test script for opValidatorDate (fixes #638;BP from #633)
History
Updated by Youichi Kimura 7 months ago
- Status changed from New(新規) to Pending Review(レビュー待ち)
- % Done changed from 0 to 50
更新履歴commit:"4959371b6cabf91fa2cbe4a9a7384fe586a5dffa"で適用されました。
Updated by Shogo Kawahara 6 months ago
更新履歴commit:"939e93244859d2c0105aaed7e6de26cef8981802"で適用されました。
Updated by Kousuke Ebihara 6 months ago
- Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
Updated by Imamura Mutsumi 6 months ago
- Status changed from Pending Testing(テスト待ち) to Fixed(完了)
- % Done changed from 50 to 100
動作テストOKです。