我将日期和时间以字符串形式存储在 mysql 数据库中,格式为“2013 年 7 月 18 日 12:00” 。
我在我的网站上使用 wordpress,这个日期是post 的meta_key。
我需要将它们从字符串转换为日期和时间。
strtotime() 函数在这种格式下无法正常工作。我也想区分月份和日期。
我也试过 echo date( 'format', strtotime("18 July, 2013 12:00")
它给出 01/01/1970 输出
我认为它不起作用的原因是因为您传递的格式STR_TO_DATE()
无效。尝试这个,
SELECT STR_TO_DATE(yourColumn, '%d %M, %Y %H:%s') newDateTime
FROM tableName
但是如果你想分开月份和日期,结果值将是月份的字符串。
SELECT DATE_FORMAT((STR_TO_DATE(yourColumn, '%d %M, %Y %H:%s'), '%M') month,
DATE(STR_TO_DATE(yourColumn, '%d %M, %Y %H:%s')) dateOnly
FROM tableName
FROM tableName
如果删除字符串中的逗号,则可以开始一个新DateTime
对象。看看下面的例子:
$string = str_replace(',', '', '18 July 2013 12:00');
$DateTime = new DateTime($string);
print_r($DateTime);
这将输出:
DateTime Object
(
[date] => 2013-07-18 12:00:00
[timezone_type] => 3
[timezone] => Europe/Amsterdam
)
$raw_date=str_replace(',', '', "18 July 2013 12:00");// Or get it from Database
$month=date('m', strtotime($raw_date));
$date=date('d', strtotime($raw_date));