Php 服务器的时间不对
所以我来自英国,在美国有主机。 我联系了我的主机,说我的服务器时间比格林尼治标准时间晚6小时。 他们说我需要在我的CMS中修改这个 我该怎么做呢? 无论何时我把“现在”放在第一位,我的时间都错了Php 服务器的时间不对,php,Php,所以我来自英国,在美国有主机。 我联系了我的主机,说我的服务器时间比格林尼治标准时间晚6小时。 他们说我需要在我的CMS中修改这个 我该怎么做呢? 无论何时我把“现在”放在第一位,我的时间都错了 以前从未见过这种情况,有人能提供任何建议吗?您可以计算出服务器时间设置在美国的位置前的秒数,并将此值添加到时间戳中以获得正确的时间 例如,如果服务器位于纽约,则这比伦敦时间晚18000秒。因此,获取正确的日期应该是:您可以使用PHP更改时区 putenv("TZ=Europe/London"); 或者
以前从未见过这种情况,有人能提供任何建议吗?您可以计算出服务器时间设置在美国的位置前的秒数,并将此值添加到时间戳中以获得正确的时间
例如,如果服务器位于纽约,则这比伦敦时间晚18000秒。因此,获取正确的日期应该是:
您可以使用PHP更改时区
putenv("TZ=Europe/London");
或者,如果这会产生错误:
date_default_timezone_set('Europe/London');
或者,如果您可以访问php.ini(可能不是因为您的主机)
将设置更改为上述设置,您应该可以。除此之外,您还可以使用php设置php.ini
ini_set('date.timezone', 'Europe/London');
编辑:
在我急于回答的过程中,您可以编写GMT而不是欧洲/伦敦使用DateTime::setTimeZone来定义时区。文档位于MySQL的中-您可以在查询设置时区之前执行
设置时区='GMT'
对于PHP,您可以使用以下命令之一执行。您还可以使用.htaccess
指令设置该值:
php_value date.timezone UTC
你以前有过这个问题吗?为什么我的主机不更改服务器时间!可能是因为这会让服务器上有站点的其他客户端的时间变得混乱。你是在问mysql函数
NOW()
还是phpdate()
等等?当我输入SQL时,这是根。mysql解决方案的+1-我相信这就是OP的目的。-1表示putenv
,date\u default\u timezone\u set()
是基于每个请求执行此操作的首选方法。非常棒的答案,我将如何克服php.ini。最后一行代码ini_set,我可以把它放在哪里?在任何将成为每个页面一部分的脚本中,您实际上只需要运行ini_set('date.timezone','Europe/London')代码>一次-它应该保持不变。或者我更喜欢日期默认时区设置()
,就像@Alix说的那样。如果要设置默认时间。无论何时需要使用日期,都可以使用它,或者将它放在整个网站共享的头文件中。GMT与欧洲/伦敦不同。GMT不包括夏令时(BST),而“欧洲/伦敦”包括夏令时。它现在正在更新某些部分,但不是全部。我想我需要在哪里放代码!
php_value date.timezone UTC