我有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或
答案 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服务器吗?