0

次の文字列が変数に割り当てられています。

$date = "16 June, 2012, 13:00pm";

createFromFormatを使用して実行し、DateTimeオブジェクトに変換してみます。

$dateTime = DateTime::createFromFormat("d M, Y, H:ia", $date);

これは私が取り戻すオブジェクトです:

DateTime Object
(
    [date] => 2012-06-17 01:00:00
    [timezone_type] => 3
    [timezone] => Europe/Dublin
)

正直なところ、何が間違っているのかわかりません。createFromFormatで使用される形式は、入力文字列の形式と一致しているように見えますが、出力は間違っています。この例では、日は16日ではなく17日であり、時刻は13:00:00ではなく01:00:00を示しています。

どんなアイデアや指針も本当に役に立ちます、

4

2 に答える 2

2

DateTimePMは、「結果に+12時間を追加する」と解釈され、日付のバランスが崩れます。

簡単な解決策:PMを削除するか、12時間制のバージョン(つまり、午後1時)を使用します

于 2012-06-16T20:22:54.953 に答える
1

午後を取り除いてみてください。24時間制のポイントは、午前/午後は必要ないということです。

$date = "16 June, 2012, 13:00";
$dateTime = DateTime::createFromFormat("d M, Y, H:i", $date);
于 2012-06-16T20:20:54.643 に答える