如何通过strtotime准确获取当前的UTC时间?

时间:2009-09-23 04:14:15

标签: php utc strtotime

在PHP中,如何在没有硬盘编码知识的情况下以UTC格式获取当前时间?

例如,我尝试了以下内容:

time() + strtotime('January 1, 2000')-strtotime('January 1, 2000 UTC')

并发现它报告的时间比实际UTC时间提前一小时。我在两个不同时区的两个不同的托管服务提供商上尝试了这个,结果相同。

是否有可靠(并且希望更清洁)的方式来准确获取UTC时间?

我受限于PHP 4.4.9所以我不能使用添加到PHP5的新时区内容。

提前谢谢。

4 个答案:

答案 0 :(得分:13)

$time = new DateTime('now', new DateTimeZone('UTC'));
echo $time->format('F j, Y H:i:s');

答案 1 :(得分:8)

这似乎对我有用。当然,你需要在PHP 4上测试它,因为我的所有服务器都有PHP 5,但是手册声称这适用于PHP 4。

$t = time();
$x = $t+date("Z",$t);
echo strftime("%B %d, %Y @ %H:%M:%S UTC", $x);

第一次,我忘了日期可能会在调用time()和date()之间发生变化。

答案 2 :(得分:0)

$utcTtime = gmmktime();
$unixTimestamp = time();

gmmktime:获取GMT日期的Unix时间戳

答案 3 :(得分:0)

这适用于php 4.4.9吗?

echo gmdate('Y-m-d H:i:s', time());

或者如果您想要特定日期:

$time = strtotime('January 1, 2000 UTC');
if($time){
    echo gmdate('Y-m-d H:i:s', $time);
}