【问题标题】:Timezone Day is Incorrect, Time is Fine时区日期不正确,时间很好
【发布时间】:2014-01-12 22:21:31
【问题描述】:
date_default_timezone_set('GMT');

$datetime = array(
    'year'      => date('Y', time()),
    'month'     => date('m', time()),
    'day'       => date('d', time()),
    'hour'      => date('G', time()),
    'minute'    => date('i', time()),
    'second'    => date('s', time()),
);

我使用这段代码来分隔时间,然后根据需要将不同的段传递到 jQuery 日期/时间选择器中。一切似乎都很好,但我注意到在格林威治标准时间午夜之后它仍然从我的时区中选择一天,而不是新的一天。格林威治标准时间仍然是正确的,只是不是当天。为什么会出现差异?

【问题讨论】:

  • 您可能希望调用一次time() 并将值存储在一个变量中,而不是单独调用它六次。您也可以将其省略,如 date() defaults to using time() for the second parameter
  • 注意:您应该能够使用gmdate(),而不是更改 GMT/UTC 的默认时区。
  • 很高兴了解 gmdate,时间是默认时间戳,哈哈。猜猜我的代码目前有点多余。事实证明,真正的问题是我没有为日期选择器“defaultDate”使用引号,所以它选择了相对于用户时区的今天,而不是在 GMT 中使用今天作为默认值。 :O

标签: php jquery datepicker timezone


【解决方案1】:

试试:

date_default_timezone_set('UTC');

参考此链接:https://stackoverflow.com/a/7587637/2190889

【讨论】:

  • 他为什么要将时区设置为完全不同的时区?还是您的意思是使用 GMT 的位置字符串而不是代码?
  • 原始代码 sn-p 已经在对 date() 的调用中封装了对 time() 的调用。我看不出这有什么帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-08
  • 1970-01-01
  • 2023-04-02
  • 2012-10-31
  • 2014-12-03
相关资源
最近更新 更多