日付フォームをd/m/YからY-m-dにタイムゾーンオフセットで変換したい。createFromFormat私に間違った結果を与える
$date = DateTime::createFromFormat('d/m/Y', $date);
$date = $date->format('Y-m-d');
これがある程度動作しますが、私はこれらのような日付に遭遇したとき:
echo DateTime::createFromFormat('d/m/Y h:m:s', '19/07/2017 00:00:00');
results is 2016-12-19 00:00:00.000000
echo DateTime::createFromFormat('d/m/Y h:m:s', '20/07/2017 22:51:17');
results is false
今すぐ を編集しました私はこのコードではYmdにD/M/Yから変換することができています推奨される形式を使用して
DateTime::createFromFormat('d/m/Y H:i:s', '19/07/2017 00:00:00');
期待される結果:
06/06/2017 00:00:00 => 2017-06-06 00:00:00.000000
06/06/2017 12:31:34 => 2017-06-06 12:31:34.000000
08/06/2017 21:59:21 => 2017-08-06 21:59:21.000000
19/07/2017 00:00:00 => 2018-07-07 00:00:00.000000 wrong!
20/07/2017 22:51:17 => 2018-08-07 22:51:17.000000 wrong!
21/07/2017 23:39:23 => 2018-09-07 23:39:23.000000 wrong!
27/07/2017 02:46:14 => 2019-03-07 02:46:14.000000 wrong!
これは 'd/m/Y H:i:s'でなければなりません。' 24hour'形式に 'H'を使用してください。 –
今どこかに行ってもそれでも間違った結果を出すような気分です。例えば30/07/2017 00:00:00 2016-12-07 00:00:00.000000 – Photonic
@Photonic:あなたは 'm '。Sahilは彼のコメントを編集しました。おそらくあなたはそれを見ませんでした。 – panther