我有以下日期字符串
$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
完成的.
现代的方法是使用DateTime
和DateTimeZone
类.
$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 举报,一经查实,本站将立刻删除。