6
私は日時の「SETDATE」方法の奇妙な行動を持っているので、私は、サーバーやPHPのいずれかの可能性のある設定ミスを探すために少しの助けを必要とする:奇妙な日時:: SETDATE()の挙動
$datetime = new DateTime('2016-01-01 23:59:59');
$datetime->setDate(2016, 2, 28);
print_r($datetime);
/*
DateTime Object
(
[date] => 2016-01-28 23:59:59
[timezone_type] => 3
[timezone] => Europe/Berlin
)
date should actually be february!
*/
まあ、私は3月に日付を設定すると結果は2月2日になるので、少なくとも一貫しています。 PHPのデフォルトのタイムゾーンで
$datetime = new DateTime('2016-01-01 23:59:59');
$datetime->setDate(2016, 3, 28);
print_r($datetime);
/*
DateTime Object
(
[date] => 2016-02-28 23:59:59
[timezone_type] => 3
[timezone] => Europe/Berlin
)
date should actually be march!
*/
// "Europe/Berlin"
echo date_default_timezone_get();
に設定されているサーバーが現在
php version 5.3.2 (unfortunately i cannot upgrade)
で実行されているサーバーの時刻を正確に設定し、タイムゾーンもヨーロッパ/ベルリンです。
誰かが私に何か助けてもらえますか助言してくれますか?
は、私が最初にそれがあまりにもスマートいるPHPの日付関数によって引き起こささらに別のDSLの質問だと思ったが、その後、私はあなたのコードを試してみましたが、私は単に[問題を再現することはできません全く](https://で3v4l .org/Ne2qi)。これは100%の実コードですか?あなたのシステム仕様は何ですか? –
申し訳ありませんが、私はいつもサポートされていないバージョン*ボタンを忘れています。 [更新されたデモ](https://3v4l.org/nPsle)を確認してください。私が考えることができるのは、あなたの内部の日付データベースが壊れているか何かがあるということだけです。 –
返事をありがとう。これは実際にそのサーバー上で起こります(いくつかの仮想テストマシンでは完璧に動作します)。あなたは、内部の日付データベースをチェックする方法を知っていますか? – Ryo