MySQL に 2012-11-00 として保存されている日付があり、PHP ページで適切にフォーマットできるように変換しようとしています。以下を使用すると、常に1か月遅れてしまいます。したがって、MySQL の日付が 2012 年 11 月 00 日の場合、PHP の結果は 2012 年 10 月になります。
date("M Y", strtotime($resVal['dateField']))
なぜこれを行うのかについての考えはありますか?
日付を として保存しないのはなぜ2012-11-01
ですか?
は「無効」であるため2012-11-00
、PHP の場合、その日付は と等しくなり2012-10-31
ます。
DateTime::createFromFormat
あなたの(奇妙な)フォーマットを簡単に処理できるものを使用してください:
echo DateTime::createFromFormat('Y-m-|??', '2012-11-00')->format('M Y');
戻りますNov 2012
DATE_FORMAT関数を使用して MySQL で日付をフォーマットします。
SELECT DATE_FORMAT(date_field, '%b %Y')
FROM table
2012-11-00 は有効ではないため、日付を「2012-11-01」として保存します。
2012-11-00 は有効な日付ではありません 2012-11-01 は日付です...おそらく 2012-10-31 に丸められます