【问题标题】:PHP Time Zone Function [closed]PHP时区函数[关闭]
【发布时间】:2014-10-03 03:57:52
【问题描述】:

我是 php 新手。我正在为在线电视台构建一个网络应用程序,并且正在开发一个节目时间表系统。我的问题是如何显示相对于最终用户的程序时间。因此,在美国东部标准时间早上 7 点在服务器上播出的节目将显示为美国中部标准时间早上 6 点。有人知道一个简单的解决方案吗?谢谢

【问题讨论】:

  • 嗨,欢迎来到 StackOverflow。如果您包含显示您已经尝试过的代码示例,您将获得更好的答案!
  • 关于 PHP 的日期、时间和时区支持的文档可以在 here 找到。

标签: php timezone timestamp-with-timezone


【解决方案1】:

使用DateTime 类,在其本地时区解析程序时间,然后将时区设置为最终用户的时区并显示它。这是一个有点简单的例子......

$dt = new DateTime('7am', new DateTimeZone('America/New_York'));
echo $dt->format('r');
// Fri, 03 Oct 2014 07:00:00 -0400

$dt->setTimezone(new DateTimeZone('America/Chicago'));
echo $dt->format('r');
// Fri, 03 Oct 2014 06:00:00 -0500

【讨论】:

  • 请注意CST 不是有效的PHP 时区,但US/Central 是。
  • @worldofjr 很奇怪,它对我有用,从我上面的示例中可以看出,它是正确的 (-0600)。无论如何,这只是一个例子
  • 无效。我认为有时这取决于您的服务器。请参阅PHP: Other Timezones,您会注意到它没有列出。无论如何,这些时区仅用于向后兼容。例如,EST 应使用America/New_York
  • 另见这个 SO 问题List of US Time Zones for PHP to use?
  • @worldofjr 显然,您也不应该使用 US/ 前缀区域。我已经用 valid 时区 更新了我的答案
猜你喜欢
  • 1970-01-01
  • 2017-01-07
  • 2020-09-08
  • 1970-01-01
  • 1970-01-01
  • 2012-10-05
  • 1970-01-01
  • 1970-01-01
  • 2015-01-13
相关资源
最近更新 更多