为什么日期PHP和日期Unix不匹配


why does the date php and date unix does not match?

我有centos服务器,我通过日期cmd将时间更改为纽约时间。我还更改了php.ini中的"日期"。timezone = "America/New_York"当我在命令shell中输入命令日期时。我在纽约可以实时通话。但是当我做

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

时间不对!我的时间总是比纽约少6个小时。请帮忙吗?我已经尝试使用date_default_timezone_set('America/New_York');在没有帮助的情况下编写代码。等待回复。谢谢!科伦或

i rechanged time to NewYork time by date cmd

date命令不提供更改时区的方法。您可能将其设置为纽约时间的时间,但由于它已经设置为任何时区,因此您最终得到服务器时间差6小时(奇怪的是,如果是UTC,则应该差5小时)。

在用date命令设置时间之前,先设置TZ环境变量export TZ=America/New_York 。错误的服务器时间会导致严重的问题。

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

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

i更改php.ini中的"date. ini "。timezone = "America/New_York"

看,不熟悉形式逻辑的人很容易犯错误。
让我用一个小例子告诉你:

假设你在口袋里放了一些钱。
我走过去问你口袋里有没有钱。你说"是"。

但你不能肯定!你能确定的只是你把放在了那里。但是口袋上可能有一个洞,或者已经被小偷偷走了,或者你只是把口袋弄混了。所以,你必须先检查,然后再回答。

虽然它在现实世界中可以忽略不计,但在编程中这种行为变得至关重要!你可以改变任何设置,但是你必须验证,如果你的动作有任何效果
可能有apache重新加载问题,或者错误的ini。文件或一些覆盖它的运行时设置。

Tl:博士
总是验证你的设置,变量,数据-如果它真的包含预期的值!
不要依赖于你在某个地方改变了它的事实。

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

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

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

如果你在脚本中设置正确,应该会显示"America/New York"。

如果是,我会尝试这里讨论的过程来更改系统上的时间,看看是否有效。

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