如何解析YouTube返回的日期到时间戳?

时间:2010-12-15 09:29:45

标签: php datetime youtube youtube-api youtube-data-api

YouTube返回Updated dateSubmitted on日期,如下所示:2010-08-22T04:46:18.000Z

是否有PHP函数或解析此函数的日期掩码?

3 个答案:

答案 0 :(得分:6)

$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

答案 1 :(得分:3)

听起来像strtotime就是你要找的东西。

编辑:如果这不起作用,请查看Date and Time classes - 有以指定格式解析日期的方法(like this - 不返回一个时间戳直接,但如果你从中构造一个DateTime,你可以使用它的getTimestamp - 方法)

答案 2 :(得分:0)

试试这个:

$date=substr("2010-08-22T04:46:18.000z",0,strlen("2010-08-22T04:46:18.000z")-1);
$stamp=strtotime($date);

最后的“z”似乎是strtotime的问题。