所以我来自英国,在美国有主机。我联系了我的主人,说我的服务器时间设置为比GMT晚6个小时。他们说我需要在我的CMS中修改这个。
我该怎么做呢?每当我输入now()的时候,我就会得到错误的时间。
以前从来没有见过这种情况,有没有人能提供一些建议?
发布于 2010-05-20 09:59:22
您可以使用PHP更改时区
putenv("TZ=Europe/London");
或者,如果这会产生错误:
date_default_timezone_set('Europe/London');
或者,如果您可以访问您的php.ini (可能不是由于您的主机)
date.timezone = "Europe/London"
将设置更改为上面的设置,您应该就可以了。除此之外,您还可以使用PHP设置php.ini。
ini_set('date.timezone', 'Europe/London');
http://www.php.net/manual/en/timezones.europe.php
编辑:
在我急于回答的时候-你可以写GMT而不是欧洲/伦敦
发布于 2010-05-20 10:03:42
对于MySQL -您可以在查询前执行SET time_zone = 'GMT'
以设置时区time_zone config docs。
对于PHP -您可以使用其中一个supported timezones执行date_default_timezone_set()
。您还可以使用.htaccess
指令设置该值:
php_value date.timezone UTC
发布于 2010-05-20 09:57:10
您可以计算出服务器时间设置为的美国位置的前几秒,并将该值添加到时间戳中以获得正确的时间。
例如,如果服务器在纽约,则这比伦敦时间晚18000秒。因此,获得正确的日期应该是:<?php $now = date('d M Y', (time() + 18000)) ?>
https://stackoverflow.com/questions/2872619
复制相似问题