【问题标题】:How to correctly set the time given when using date('Y-m-d') in php?在 php 中使用 date('Y-m-d') 时如何正确设置给定的时间?
【发布时间】:2016-09-01 08:15:11
【问题描述】:

当我将时区设置为当前位置时(例如:内罗毕 GMT +3) 然后使用 date('Y-m-d') 询问时间,我得到的分钟值不正确。即如果它是上午 11:03,它会显示上午 11:15(所以 +12 分钟差异)。

下面是使用的代码。很基本。完成工作。

date_default_timezone_set("Africa/Nairobi"); 
//echo date_default_timezone_get(); 
echo date('H:i:s');

而且这个时差只发生在我客户的服务器上。在其他测试服务器中,它提供准确的时间。即上午 11:03 将显示上午 11:03。

我是否也需要更改 php.ini 中的时区?

编辑:

  1. 项目不在本地主机中。
  2. 设置时区前后的时间输出是一样的:/

【问题讨论】:

  • 是你在本地服务器上的项目
  • 与PHP无关。不同的是服务器上的时间。将两台服务器与 ntp 同步。
  • 如果设置时区前后时间相同,则表示服务器已经设置为该时区。
  • @Magnus 谢谢。我也得出了同样的结论。我需要知道我是否需要处理 php.ini 文件或者是否有另一个 php 脚本来解决这个问题。
  • 您已经有了解决方案!使用 NTP 同步服务器时间 - 它与 PHP 无关 @Blazeag 甚至给了你正确的命令,如果你在 Linux 上。

标签: php datetime server


【解决方案1】:

可能服务器系统时间提前 12 分钟

【讨论】:

    【解决方案2】:

    您的系统时间可能提前 12 分钟。如果你在linux下,试试

    ntpdate -s time.nist.gov
    

    【讨论】:

    • 别忘了sudo :)
    • 是的,sudo 或 root,谢谢@Magnus Eriksson ;)
    【解决方案3】:

    设置时区之前的日期输出是什么?

    输出是什么

    print_r(get_defined_vars())
    

    【讨论】:

    • 上面的输出是一个(非常)长的信息列表,与所面临的问题没有任何关系。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    • 1970-01-01
    • 1970-01-01
    • 2014-03-05
    • 2013-08-08
    • 2019-01-08
    • 2011-10-24
    相关资源
    最近更新 更多