1. ホーム
  2. php

[解決済み] PHP で日付の書式を別のものに変換する

2022-03-15 08:55:47

質問

PHP で、ある日付形式を別の日付形式に変換する簡単な方法はありますか?

私はこれを持っています。

$old_date = date('y-m-d-h-i-s');            // works

$middle = strtotime($old_date);             // returns bool(false)

$new_date = date('Y-m-d H:i:s', $middle);   // returns 1970-01-01 00:00:00

しかし、もちろん、夜明け前の日付ではなく、現在の日付を返してほしい。どうすればいいんだろう?

解決方法は?

の2番目のパラメータは date() は、適切なタイムスタンプ(1970年1月1日からの秒数)である必要があります。文字列を渡しているので、date()はそれを認識できません。

を使用することができます。 strtotime() を使って、日付文字列をタイムスタンプに変換しています。しかし、strtotime()でも y-m-d-h-i-s という書式があります。

PHP 5.3以上

使用方法 DateTime::createFromFormat . これにより、正確なマスクを指定することができます。 date() 構文で、入力された文字列の日付を解析します。

PHP 5.2以下

要素(年、月、日、時、分、秒)を手動で解析する必要があります。 substr() に渡して、その結果を mktime() で、タイムスタンプが作成されます。

しかし、それは大変な作業だ! strftime()が理解できる別のフォーマットを使用することをお勧めします。 任意の の短い日付入力 the next time joe will slip on the ice .例えば、このように動作します。

$old_date = date('l, F d y h:i:s');              // returns Saturday, January 30 10 02:06:34
$old_date_timestamp = strtotime($old_date);
$new_date = date('Y-m-d H:i:s', $old_date_timestamp);