我在纽约有一个服务器,在加利福尼亚有一个"客户端",它希望服务器计算出加利福尼亚当天的午夜时间,而加利福尼亚每天有三个小时与纽约不同。
我只能够计算纽约当前一天的午夜,但我需要能够计算加利福尼亚(或任何其他任意时区)当前一天的午夜
我可以访问时区与UTC的偏移量。
$tzOffset = "-700"; // Timezone offset from UTC (in this case, PDT)
我现在使用的(半工作)方法是
strtotime("00:00:00 " . $tzOffset);
在6月25日晚上10:00 PDT,这个方法返回6月26日12:00 AM PDT作为午夜,当它应该返回6月25日12:00 AM PDT
// create time from string
$date_time = new Datetime('midnight', new Datetimezone('America/Los_Angeles'));
// string representation of time in America/Los_Angeles
echo $date_time->format('Y-m-d H:i:s') . PHP_EOL;
$date_time->setTimezone(new Datetimezone('America/New_York'));
// string representation of the same time in America/New_York
echo $date_time->format('Y-m-d H:i:s') . PHP_EOL;
http://php.net/manual/en/datetime.formats.php 创建一个时区的datetime对象
$dt = new Datetime('2014-06-25 00:00:00', new Datetimezone('America/New_York'));
更改为另一个时区
$dt->setTimezone(new Datetimezone('America/Los_Angeles'));