0

MySQL に 2012-11-00 として保存されている日付があり、PHP ページで適切にフォーマットできるように変換しようとしています。以下を使用すると、常に1か月遅れてしまいます。したがって、MySQL の日付が 2012 年 11 月 00 日の場合、PHP の結果は 2012 年 10 月になります。

date("M Y", strtotime($resVal['dateField']))

なぜこれを行うのかについての考えはありますか?

4

3 に答える 3

2

#1。

日付を として保存しないのはなぜ2012-11-01ですか?

は「無効」であるため2012-11-00、PHP の場合、その日付は と等しくなり2012-10-31ます。

#2。

DateTime::createFromFormatあなたの(奇妙な)フォーマットを簡単に処理できるものを使用してください:

echo DateTime::createFromFormat('Y-m-|??', '2012-11-00')->format('M Y');

戻りますNov 2012

#3。

DATE_FORMAT関数を使用して MySQL で日付をフォーマットします。

SELECT DATE_FORMAT(date_field, '%b %Y')
FROM table
于 2013-01-08T19:07:17.987 に答える
0

2012-11-00 は有効ではないため、日付を「2012-11-01」として保存します。

于 2013-01-08T19:07:17.430 に答える
0

2012-11-00 は有効な日付ではありません 2012-11-01 は日付です...おそらく 2012-10-31 に丸められます

于 2013-01-08T19:08:08.673 に答える