如何仅基于代表特定时间的数字在PHP中移动时区?
问题描述:
我正在使用API来抓住每小时的统计数据。不幸的是,我无法定义时区,因此我得到的小时数列只是一个表示EST时区中的值的数字。如何仅基于代表特定时间的数字在PHP中移动时区?
有什么办法将这个时间信息转换成另一个时区?
这里是阵列的外观:
array (2)
result => array (20)
| 0 => array (14)
| | impressions => 90177
| | clicks => 186
| | video_hits => 0
| | video_views => 0
| | value => 90.177
| | goals => 52
| | hour => 15
| | ctr => 0.20626101999401
| | cpm => 0.01
| | cpv => 0
| | vtr => 0
| | cpc => 0.0048482258064516
| | cost => 0.90177
| | ecpa => 0.017341730769231
于是小时是15,即。下午3点,我需要将此解释的时区更改为当地时区。
任何想法?
答
EST还是EDT? (夏令时问题)。
我会承担美国东部时间。在这种情况下,并假设日期没关系,试试:
$date = DateTime::createFromFormat('H', $hour, new DateTimeZone('America/New_York'));
$date->setTimezone(new DateTimeZone($userTimeZone));
$userHour = $date->format('H');
这给我:致命错误:未捕获的异常:DateTimeZone :: __结构():未知的或坏的时区()的.. – depi
你有没有使用有效的时区?这个错误是相当自我解释.. – Devon
该死,我忘了更改$ userTimeZone。现在完美运作。你是德文人! – depi