2010-06-29 60 views
0

我将last.fm中最新的听音轨放在我的网站上。在PHP或jQuery中将UTS(UTC-0)时间转换为BST

问题是,以UTC-0 uts格式检索时间,并将它们与BST时间进行比较以计算模糊时间戳(“大约5分钟前”,“大约一个小时前” “等)。

有没有什么办法解决这个问题,所以时间总是匹配BST/GMT并在进入和离开夏令时时进行调整?

下面是我正在使用的PHP代码片段,这会导致时间超出一小时。

$now = time(); // use this so all times are to the same second 
    $tz = getenv("TZ"); // save local setting so we can reset it later 
    putenv("TZ=Europe/London"); 

    $trackPlayedAt = date('d M Y H:i:s', $track->date->uts); 

回答

0

date()自动格式化为本地时区。时区取决于PHP服务器的配置。如果一切设置正确,它应该只是工作

如果您正在运行PHP 5.3,您有更多选项。评论您正在运行的PHP版本。

+0

啊我有PHP 5.2.6 – Scotty 2010-06-29 23:45:00

+0

你是对的!该脚本在我的托管中工作正常,但在我本地的MAMP设置上无法正常工作。我不太清楚如何配置它:S – Scotty 2010-06-29 23:53:54

+0

很酷。是的,如果你努力工作,日期可能会很有趣。我几年前决定让'date()'这样想。您可以在php.ini中验证时区设置或运行'phpinfo()'。你可能只是缺少DST或其他东西。 – 2010-06-30 00:34:36