-2

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

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

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

strtotime() 函数在这种格式下无法正常工作。我也想区分月份和日期。

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

4

3 回答 3

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
于 2013-07-24T09:54:40.773 回答
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
) 
于 2013-07-24T10:03:01.600 回答
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 日期手册

于 2013-07-24T09:58:01.890 回答