包括时区偏移量

时间:2012-03-09 18:19:25

标签: php date timezone

您知道我们可以使用date()秒数。例如date('H:i:s', 3652)。 但如果我为日期设置时区,它会返回错误的字符串:

date('H:i:s', 1); // it should returns '00:00:01'
date_default_timezone_set('Europe/Rome');
date('H:i:s', 1); // it returns '01:00:01'. 3600s plus!

我该如何解决?

2 个答案:

答案 0 :(得分:0)

欧洲/罗马时区是GMT + 1。它将在大纪元(比GMT提前一小时)回归罗马的时间,所以这是正确的。

答案 1 :(得分:0)

我找到了解决方案!

date_default_timezone_set('Europe/Rome');
$offset = date('Z');
date('H:i:s', 1 - $offset); // it returns '00:00:01' now.

根本就像Crashspeeder所说的那样,将秒转换为小时,分钟,秒的功能更好。因为它支持的秒数超过86400。