0

我有一个存储在 MySQL 中的日期为 2012-11-00,我正在尝试对其进行转换,以便可以在 PHP 页面上正确格式化它。当我使用以下内容时,我总是落后一个月。因此,如果 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::createFromFormatwhich 可以轻松处理您的(奇怪的)格式:

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-01”,因为 2012-11-00 无效。

于 2013-01-08T19:07:17.430 回答
0

2012-11-00 不是有效日期 2012-11-01 是一个日期......所以它可能四舍五入到 2012-10-31

于 2013-01-08T19:08:08.673 回答