Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 服务器的时间不对_Php - Fatal编程技术网

Php 服务器的时间不对

Php 服务器的时间不对,php,Php,所以我来自英国,在美国有主机。 我联系了我的主机,说我的服务器时间比格林尼治标准时间晚6小时。 他们说我需要在我的CMS中修改这个 我该怎么做呢? 无论何时我把“现在”放在第一位,我的时间都错了 以前从未见过这种情况,有人能提供任何建议吗?您可以计算出服务器时间设置在美国的位置前的秒数,并将此值添加到时间戳中以获得正确的时间 例如,如果服务器位于纽约,则这比伦敦时间晚18000秒。因此,获取正确的日期应该是:您可以使用PHP更改时区 putenv("TZ=Europe/London"); 或者

所以我来自英国,在美国有主机。 我联系了我的主机,说我的服务器时间比格林尼治标准时间晚6小时。 他们说我需要在我的CMS中修改这个

我该怎么做呢? 无论何时我把“现在”放在第一位,我的时间都错了


以前从未见过这种情况,有人能提供任何建议吗?

您可以计算出服务器时间设置在美国的位置前的秒数,并将此值添加到时间戳中以获得正确的时间


例如,如果服务器位于纽约,则这比伦敦时间晚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()
还是php
date()
等等?当我输入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