为什么日期php和日期unix不匹配?

时间:2011-11-23 14:48:16

标签: unix date time php

我有centos服务器,我按日期cmd改变了纽约时间的时间。 另外我在php.ini中更改了“date.timezone =”America / New_York“” 当我在命令shell中输入命令日期时。我在纽约得到了实时。 但是当我做的时候

  

回音日期(“Y-m-d H:i:s”);

时间不对! 我总是比在纽约的时间少6个小时。 请帮忙? 我已经尝试过使用date_default_timezone_set('America / New_York');在代码中没有任何帮助。 等待回应。 谢谢! Koren或

5 个答案:

答案 0 :(得分:1)

  

我将时间改为纽约时间cmd

date命令不提供更改时区的方法。你可能把它设置为它在纽约时间的时间,但是无论它已经设置为什么时区,所以你最终得到的服务器时间为六小时(奇数,如果它是UTC,它应该是五关)。

在使用date命令设置时间之前设置TZ环境变量export TZ=America/New_York 。服务器时间不正确会导致严重问题。

答案 1 :(得分:0)

您可以在应用中初始化时区。你这样做会发生什么?

date_default_timezone_set('America/New_York');
echo date("Y-m-d H:i:s");

答案 2 :(得分:0)

  

我在php.ini中更改了“date.timezone =”America / New_York“”

看,对于不熟悉形式逻辑的人来说,这是很常见的错误 让我用一个小例子告诉你:

假设你只是把一些钱放进口袋里 我遇到你问你口袋里有没有钱。 你说“是”。

但你不能肯定地说出来! 您可以确定只有放在那里。 但是口袋里可能有一个洞,或者一些小偷已经把它捡起来了,或者你只是把口袋弄糊涂了。 所以,你必须先检查,然后再回答。

虽然在现实世界中它可以忽略不计,但在编程中这种行为变得至关重要! 您可以更改任何设置,但您必须验证,如果您的操作有任何影响
可能存在apache重载问题,或者错误的ini.file或某些运行时设置会覆盖它。

TL:博士
始终验证您的设置,变量,数据 - 如果确实包含预期值!
不要依赖于你在某处改变它的事实。

答案 3 :(得分:0)

这听起来像是没有在您的机器上正确设置时区的问题。

首先,要验证PHP是否使用了正确的时区,请尝试以下操作来查看。

echo date("Y-m-d H:i:s e");

如果您已在脚本中正确设置,那么应该为您提供“America / New York”。

如果是这样,我会尝试使用here讨论的程序来更改系统上的时间,看看是否有效。

答案 4 :(得分:-1)

我只是在这里猜测,但你重新启动了apache服务器吗?