質問: date('y-m-d h:i:s', $middle); // returns 1970-01-01 00:00:00 しかし、亀裂の夜明けではなく現在の日付を返すようにしたいのです。何がおかしいのですか?
回答: 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()は、any date入力が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);