在Google API的json结果中获得以下时间:
2014-08-25T20:02:24.000Z
如何为MySQL datetime
字段转换和准备它?
答案 0 :(得分:3)
$dateTime=new DateTime('2014-08-25T20:02:24.000Z');
echo $dateTime->format('Y-m-d H:i:s') ;
输出为
2014-08-25 20:02:24 mysql DATETIME format
答案 1 :(得分:1)
作为一个简单的ISO 8601表示,它是almost what MySQL understands。唯一有问题的问题是" Z"因为MySQL不支持时区,也不会忽略" Z"。
因此,只需稍微修改一下格式(这不是所有日期的通用解决方案,但 为此问题提供有效的解决方案,当日期未在SQL之前使用或检查时);
$iso = "2014-08-25T20:02:24.000Z"; // literal JSON text
$iso = preg_replace("/Z$/", "", $iso); // -> "2014-08-25T20:02:24.000"
将其像普通话一样(with placeholders)插入MySQL;
$msqli_stmt->bind_param("s", $iso);
$pdo_stmt->bindValue(":dt", $iso);
考虑这个SQL示例;
create table x (y datetime)
insert into x (y) values ('2014-08-25T20:02:24.000')
select * from x
--> August, 25 2014 20:02:24+0000
答案 2 :(得分:1)
这是ISO 8601 date。您可以使用以下命令将其直接转换为DateTime
对象。
$date = new DateTime('2014-08-25T20:02:24.000Z');
或者与strtotime()
的经典PHP时间函数一起使用的时间戳:
$time = strtotime('2014-08-25T20:02:24.000Z');
一旦你有了它,只需将其转换为MySQL使用的格式Y-m-d H:i:s
,使用其中一种:
$to_mysql = $date->format('Y-m-d H:i:s');
$to_mysql = date('Y-m-d H:i:s', $time);