将字符串转换为PHP中的日期日期和时间,如2013年7月18日12:00

时间:2013-07-24 09:51:48

标签: php mysql wordpress date datetime

我将日期和时间存储为字符串,格式为“2016年7月18日12:00”在mysql数据库中。

我在我的网站上使用wordpress,这个日期是 meta_key 的帖子。

我需要将它们从字符串转换为日期和时间。

strtotime()函数无法正常使用此格式。另外,我想要分享月份和日期。

我还试过echo date( 'format', strtotime("18 July, 2013 12:00")它给出了01/01/1970输出

3 个答案:

答案 0 :(得分:1)

我认为它不起作用的原因是因为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

答案 1 :(得分:0)

$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));

PHP Date Manual

答案 2 :(得分:0)

如果删除字符串中的逗号,则可以启动新的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
)