使用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
)

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...