2

「時:分 午前/午後 月/日/年」のタイムスタンプを取得しようとしていますが、正しく機能していないようです。それはどのような順序である必要がありますか?

現在の注文の例: 2012 年 4 月 19 日午前 11 時 59 分

4

5 に答える 5

3

これは、要求されたフォーマットされた日付/時刻文字列をタイムスタンプに変換する方法です。

$date_string = '11:59 am, 04/19/2012';
$dateTime = DateTime::createFromFormat("H:i a, m/d/Y", $date_string);
$timestamp = $dateTime->getTimestamp();
echo $timestamp;

出力:

1334833140
于 2012-04-18T15:55:15.747 に答える
2

日付を時刻の前に置きます。

echo strtotime('04/19/2012 11:59 am');
于 2012-04-18T15:32:13.987 に答える
2

私はそれがこれに似ていると信じています

echo strtotime(date("Y-m-d H:i:s"));

なので順番は

年月日 時:分:秒

また、 strtotime はさまざまな日付形式を知るのに十分スマートであると想定しているため、日付形式で問題ないはずです。最初の部分とその後の時間として配置するだけです。

于 2012-04-18T15:32:21.747 に答える
1

am の後の次の文字を削除してみてください: ,

たとえば、これを使用します。

strtotime("11:59 am 04/19/2012")
于 2012-04-18T15:32:38.807 に答える
0

あなたの質問を正しく理解している場合date()、タイムスタンプから必要な形式を取得するために解析する必要がある文字列は次のとおりです。

date("H:i a, m/d/Y", $timestamp);

その他のフォーマット文字については、こちらのドキュメントを参照してください。


strtotime()指定した日付形式をタイムスタンプに変換しませんが、より強力で用途の広いDateTimeクラスができる可能性があります。

于 2012-04-18T15:31:59.353 に答える