YouTube按如下方式返回Updated date
和日期:Submitted on
2010-08-22T04:46:18.000Z
是否有 PHP 函数或日期掩码可以解析它?
YouTube按如下方式返回Updated date
和日期:Submitted on
2010-08-22T04:46:18.000Z
是否有 PHP 函数或日期掩码可以解析它?
$dt = DateTime::createFromFormat("Y-m-d\TH:i:s.uP", "2010-08-22T04:46:18.000Z");
var_dump($dt);
// object(DateTime)#1 (3) {
// ["date"]=>
// string(26) "2010-08-22 04:46:18.000000"
// ["timezone_type"]=>
// int(2)
// ["timezone"]=>
// string(1) "Z"
// }
这使用了DateTime
类。它具有时区和小数秒意识。要显示日期,请使用以下format
方法:
echo $dt->format("Y-m-d H:i:s e");
// 2010-08-22 04:46:18 Z
要将日期转换为本地时区,请使用以下setTimezone
方法:
$dt->setTimezone(new DateTimeZone(date_default_timezone_get()));
echo $dt->format("Y-m-d H:i:s e");
// 2010-08-21 21:46:18 America/Los_Angeles
听起来strtotime是你要找的。
编辑:如果这不起作用,请查看Date 和 Time 类- 有以指定格式解析日期的方法(像这样- 不直接返回时间戳,但如果你从中构造 DateTime,你可以使用它的getTimestamp -方法)
试试这个:
$date=substr("2010-08-22T04:46:18.000z",0,strlen("2010-08-22T04:46:18.000z")-1);
$stamp=strtotime($date);
最后的“z”似乎是strtotime的问题。