如何将这个时间(使用ISO8601格式)转换为:2014-03-13
这个时间(使用MySQL DATE格式):2014-03-13
在php中应该怎么做?
试试这个
$date = '2014-03-13T09:05:50.240Z';
$fixed = date('Y-m-d', strtotime($date));
完整的日期函数文档可以在这里找到:http://php.net/manual/en/function.date.php
PHP函数“strtotime”所做的就是将您的时间字符串转换为Unix时间戳。
希望我能帮到您 :)
P.s.: 如果strtotime返回0,请尝试使用以下内容:
$date = '2014-03-13T09:05:50.240Z';
$fixed = date('Y-m-d', strtotime(substr($date,0,10)));
date('Y-m-d', strtotime(substr($date,0,10)))
如果返回 0 的最后一条注释是完美的。那是对我很有帮助的!谢谢... :) - Neel自从PHP 5.2.0
版本以来,您也可以使用OOP和DateTime()
(如果您更喜欢OOP的话):
$now = new DateTime("2014-03-13T09:05:50.240Z");
echo $now->format('Y-m-d'); // MySQL datetime format
没有理由使用低效的时间函数。最有效的方法是简单地提取前10个字符:
substr($date,0,10)
编程经验超过10000年的人,可以使用以下技巧:
substr($date,0,strpos($date,"T"))
Thu Mar 13 2014 17:21:17 GMT+0530 (India Standard Time)
,在转换后,$fixed
值输出为1970-01-01。那么这种格式有不同的方法吗? - Neeldate('Y-m-d', strtotime(substr($date,0,10)))
是有效的!感谢Mitul的支持! - Neel$dateTimeFactory = new Interitty\Utils\DateTimeFactory();
$dateTime = $dateTimeFactory->createFromIso8601('1989-12-17T12:00:00Z');
T
之前的部分会给你想要的结果。你尝试过使用substr
进行操作吗? - Jon