【问题标题】:PHP and timezonePHP 和时区
【发布时间】:2014-09-08 08:45:38
【问题描述】:

我正在使用strtotime() 从日期和时间字符串中获取时间戳。我将在夏季(夏令时)运行strtotime(),为我提供冬季日期的时间戳(非夏令时)。

在冬天,我需要使用date() 将我的时间戳转换为可读日期——这与我在夏天输入strtotime() 的日期/时间相同吗?

在我的每一页上,我都将我的时区设置为 date_default_timezone_set 和我的城市。

所以,在夏天运行这个(夏令时):

date_default_timezone_set('America/Los_Angeles');
echo strtotime("Dec 1 2014 8:00 am");

给我一​​个特定的时间戳 1417449600。

在冬季(非夏令时)运行此功能是否会在我需要时在早上 8:00 返回?

date_default_timezone_set('America/Los_Angeles');
echo date("g:ia",1417449600);

【问题讨论】:

标签: php date strtotime


【解决方案1】:

是的。如果您设置的时区没有明确说明是标准时间还是夏令时,它会自动从您给它的时间确定 DST 的状态以及时区何时进入和退出 DST 的规则。

【讨论】:

    【解决方案2】:

    是的。诸如 1417449600 之类的 UNIX 时间戳表示一个完全、全局、普遍唯一的时间点,与繁琐的时区表示法无关。只有一个 “2014 年 12 月 1 日上午 8 点在洛杉矶”,与 “2014 年 12 月 1 日 17:00 CET”的时间点相同 em> 和世界各地的许多其他本地符号。 UNIX 时间戳 1417449600 表示该时间点,无论您的挂钟准确地说是什么。

    当您使用 date() 将此独特的时间点格式化回更易于阅读的格式时,它会根据设置的时区确定必须格式化的确切时间。它不会根据时间或 DST 设置而改变现在

    【讨论】:

      猜你喜欢
      • 2011-08-11
      • 2011-01-20
      • 1970-01-01
      • 2015-04-23
      • 2017-01-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多