繁体   English   中英

如何使用AWS API处理PHP中的日期和时区

[英]How to deal with Date and Timezone in PHP with AWS API

我正在使用AWS PHP SDK,而亚马逊的API正在返回以下时间戳。

2013-04-23T13:18:00Z

他们给我的时间戳似乎已经在我的时区。 由于它没有指定它是哪个时区,我猜它被认为是我当地的时间。 ISO 8601的维基站点也声明......

如果没有给出具有时间表示的UTC关系信息,则假定时间是在本地时间。

但是,当我尝试使用它在PHP中像这样被转化成我的本地时区。 PHP的strtotime页面说明了......

除非在该参数中指定了时区,否则此函数的每个参数都使用默认时区。

我的问题是,为什么strtotime将其转换为我的时区,如果它已经在我的时区?

亚马逊返回日期末尾的“Z”表示它是UTC。 您需要转换时区以使其本地化。 您可以通过执行以下操作来执行此操作:

<?php

$date = new DateTime('2013-04-23T13:18:00Z'); // Z = UTC
echo $date->format('H') . PHP_EOL;
//> 13
$date->setTimezone(new DateTimeZone('America/Los_Angeles')); // -0700
echo $date->format('H') . PHP_EOL;
//> 06

更新:阅读完整解决方案的所有注释。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM