PHP: 日付形式を変換する
P粉769413355
2023-08-27 13:34:57
<p>PHP である日付形式を別の形式に変換する簡単な方法はありますか? </p>
<p>これを持っています:</p>
<pre class="brush:php;toolbar:false;">$old_date = date('y-m-d-h-i-s'); // 動作します
$middle = strtotime($old_date); // bool(false) を返します
$new_date = date('Y-m-d H:i:s', $middle); // 1970-01-01 00:00:00</pre> を返します。
<p>しかし、もちろん、時刻ではなく現在の日付を返したいのです。私が何を間違えたのでしょうか? </p>
最も簡単な方法は
リーリーまず、$dateString の形式で指定します。次に、$newDateString の形式を指定します。
これにより、使用が困難になる場合がある strtotime の使用も回避されます。
ある日付形式から別の形式に変換するつもりはなく、現在の日付 (または日時) を特定の形式にしたいだけの場合は、次の方が簡単です。
リーリー別の質問でも同じトピックが取り上げられています: Convert date format yyyy-mm-dd => dd-mm-yyyy。
date()
の 2 番目の引数は、正しいタイムスタンプ (1970 年 1 月 1 日からの秒数) である必要があります。 date() が認識できない文字列を渡しています。strtotime() を使用して、日付文字列をタイムスタンプに変換できます。ただし、strtotime() でも
y-m-d-h-i-s
形式は認識されません。PHP 5.3 以降
DateTime::createFromFormat
を使用します。これにより、date()
構文を使用して正確なマスクを指定し、受信文字列の日付を解析することができます。
PHP 5.2 以前のバージョン
substr()
任意のを使用して要素 (年、月、日、時、分、秒) を手動で解析し、結果を
mktime()# に渡す必要があります。 ## がタイムスタンプを作成します。 しかし、これには多くの作業が必要です。 strftime() が理解できる別の形式を使用することをお勧めします。 strftime() は、入力日付、次にジョーが氷の上で滑ったとき を理解します。たとえば、これは機能します:
リーリー