7

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

例如,我尝试了以下操作:

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

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

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

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

提前致谢。

4

4 回答 4

13
$time = new DateTime('now', new DateTimeZone('UTC'));
echo $time->format('F j, Y H:i:s');
于 2009-09-23T12:26:21.850 回答
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() 之间的日期可能会发生变化。

于 2009-09-23T04:46:55.143 回答
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);
}
于 2013-10-01T09:51:46.387 回答
0
$utcTtime = gmmktime();
$unixTimestamp = time();

gmmktime: Get Unix timestamp for a GMT date

于 2009-09-23T12:31:51.023 回答