【问题标题】:PHP timezone GMT conversionPHP时区GMT转换
【发布时间】:2013-12-26 14:12:16
【问题描述】:

在数据库中时间以 PHP time() 格式存储 时区为'America/New_York'

我想转换这些数据并向用户显示他们的时区信息,该时区将以 GMT(+/-) 表示。

【问题讨论】:

  • time() 没有时区。
  • 是的,但是系统知道存储 time() 的当前时区。
  • 不,time 返回的值是一个 UNIX 时间戳,它没有时区。不是隐含的,也不是明确的。它与时区无关。请参阅stackoverflow.com/a/4812178/476

标签: php timezone


【解决方案1】:

使用Datetime()DateTimeZone()

$date = new DateTime('@'.$row['datetime']);
$date->setTimeZone(new DateTimeZone('America/New_York')); 
echo $date->format("Y-m-d H:i:s);

【讨论】:

  • 这里不是错误抑制算子。 @ 符号表示一个 unix 时间戳。注意它是如何在引号中的。请参阅this blog post 了解更多信息(在入门下)。
  • @JohnConde 感谢您的回复。存储在 DB 中的时间是 America/NewYork。我想将其转换为 GMT 的另一个时区。哪个会像那样+5或-5。当前数据存储在 America/New_York
  • @AnishJoseph 您需要有一个将时区偏移链接到官方时区的数组来执行您需要执行的操作。完成此操作后,此代码将起作用。
  • @JohnConde 你说得完全正确。我删除了我的评论以避免任何混淆。
  • @JohnConde 你投过 VTC 吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-07
  • 2021-08-15
  • 1970-01-01
  • 1970-01-01
  • 2017-02-05
  • 2013-04-30
相关资源
最近更新 更多