微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用PHP将日期字符串转换为UTC时间

我有以下日期字符串

$date="Sat Apr 30 2011 18:47:47 GMT+0900 (Tokyo)"

我想将其转换为UTC时间

$timestamp_UNIX = strtotime($date);
echo date("Y-m-d\TH:i:s\Z",$timestamp_UNIX);

我为什么得到

2011-04-30T11:47:47Z
and not
2011-04-30T09:47:47Z

解决方法:

问题是您的代码不会自动回显UTC.无论您将认时区设置为什么,它都会回显时间戳.这是通过运行时的date_default_timezone_set()PHP.ini中的配置设置date.timezone完成的.

现代的方法是使用DateTimeDateTimeZone类.

$d = new DateTime('Sat Apr 30 2011 18:47:47 GMT+0900 (Tokyo)');
print_r($d);
$d->setTimezone(new DateTimeZone('UTC'));
print_r($d);

版画

DateTime Object
(
    [date] => 2011-04-30 18:47:47
    [timezone_type] => 1
    [timezone] => +09:00
)
DateTime Object
(
    [date] => 2011-04-30 09:47:47
    [timezone_type] => 3
    [timezone] => UTC
)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐