首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Etc/ GMT +(偏移量)仅在PHP中提供GMT

Etc/ GMT +(偏移量)仅在PHP中提供GMT
EN

Stack Overflow用户
提问于 2011-06-21 23:43:08
回答 1查看 833关注 0票数 1

根据PHP,Etc/GMT+(offset)格式的时区是一个valid timezone。基于此,我假设此代码将输出一系列不同的时区:

代码语言:javascript
复制
$start_date = 'Dec 16, 2011';
$start_time = '09:45:00';
#$utime_zone = 'GMT'; <-- switching to GMT works!
$utime_zone = 'Etc/GMT';

for($i = -12; $i <= 12; $i++){
   $curr = ($i >= 0)?'+'.$i: $i;
   $str = ($start_date . " " . $start_time . " " . $utime_zone.$curr);
   echo $str . ' = ' . strtotime($str).PHP_EOL;
}

不幸的是,strtotime调用完全忽略了时区。

输出:

Dec 16, 2011 09:45:00 Etc/GMT-12 = 1324028700

Dec 16, 2011 09:45:00 Etc/GMT-11 = 1324028700

Dec 16, 2011 09:45:00 Etc/GMT-10 = 1324028700

...you get the idea.

显然,我对此做了一些假设,但是有没有一种简单的方法可以将Etc/GMT+(offset)时间戳转换为GMT时间戳?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-21 23:53:14

我不知道为什么您的情况不起作用(除了PHP警告不要使用该方法),但是您可以使用ISO-8601 date formatting轻松地解决这个问题

格式基本上是Y-m-d\TH:i:s,然后是用于UTC或+/-hh:mmZ

代码语言:javascript
复制
$datetime = '2011-06-20T18:49:00';
echo $datetime.'+01:00 => '.strtotime($datetime.'+01:00')."<br />";
echo $datetime.'+03:00 => '.strtotime($datetime.'+03:00')."<br />";

为您提供

代码语言:javascript
复制
2011-06-20T18:49:00+01:00 => 1308592140
2011-06-20T18:49:00+03:00 => 1308584940
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6428135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档