【问题标题】:Issue with date() and Daylight savingsdate() 和夏令时问题
【发布时间】:2014-08-22 07:27:33
【问题描述】:

我在服务器上的 PHP 和 MySQL 之间同步日期计算时遇到问题。

目前,服务器时间为:Tue Jul 1 12:30:35 EDT 2014,时区设置为 America/New_York

在 MySQL 中运行 SELECT NOW() 会返回 2014-07-01 12:30:54,这表明 MySQL 日期与服务器的日期相同。

但是,PHP date('I') 返回 0date('Y-m-d H:i:s T') 返回 2014-07-01 11:30:35 EST

知道这里的 PHP 有什么问题吗?

【问题讨论】:

  • 查看此问答 => stackoverflow.com/q/14423348 - 这可能有助于对这个主题有所“了解”; 请原谅双关语 ;-)
  • 您将 DST 设置为开启日期(“I”),它从当前的实际时间中减去一个小时。永远记住“春天前进,后退”我们在春天将时钟拨快一小时,在秋天拨回一小时。
  • 谢谢大家的回复;考虑到我正在使用 date_default_timezone_set('America/New_York'); 设置 is_daylisght_saving = date("I", future_timestamp) 不起作用将默认时区设置为 EST
  • 对我来说,date_default_timezone_set('America/New_York'); echo date('I'); 给了1,它是2014-07-01 12:46:11 EDT
  • 是的,现在可以使用了!谢谢!!!

标签: php mysql date timezone timezone-offset


【解决方案1】:

查看此问答 => PHP date("I") for a future or past date - 它可能有助于对这个主题有所“了解”;请原谅双关语 ;-) – Fred -ii- 17 分钟前

您将 DST 设置为开启日期(“I”),该日期从当前的实际时间中减去一个小时。永远记住“春天前进,后退” 我们在春天将时钟拨快一小时,在秋天拨回一小时。 – VikingBlooded 14 分钟前

谢谢大家的回复;考虑到我正在使用 date_default_timezone_set('America/New_York'); 设置 is_daylisght_saving = date("I", future_timestamp) 不起作用默认时区为 EST – Stephane Kouakou 8 分钟前

对我来说,date_default_timezone_set('America/New_York');回显日期('我');给出 1,它是 2014-07-01 12:46:11 EDT。 – 杰克 7 分钟前

是的,它现在可以工作了!谢谢!!! – Stephane Kouakou 4 分钟前

当您SELECT NOW() 时,MySQL 会遵循服务器中 time_zone 设置的当前值。在 PHP 中,您需要确保它知道当前时区设置。

【讨论】:

    猜你喜欢
    • 2012-03-25
    • 2017-11-10
    • 2017-03-14
    • 2013-11-15
    • 2011-05-03
    • 2015-06-07
    • 2011-11-20
    • 2011-11-20
    • 2013-02-19
    相关资源
    最近更新 更多