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

发布于 2024-08-05 17:21:56 字数 329 浏览 7 评论 0原文

在 PHP 中,如果不知道我的托管提供商在哪里,如何获取当前时间(UTC)?

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

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

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

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

我仅限于 PHP 4.4.9,因此无法使用 PHP5 中添加的新时区内容。

提前致谢。

In PHP, how do I get the current time, in UTC, without hard coding knowledge of where my hosting provider is?

For example, I tried the following:

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

and find that it reports a time that is one hour ahead of actual UTC time. I tried this on two different hosting providers in two different time zones with the same results.

Is there a reliable (and, hopefully, cleaner) way to accurately get the UTC time?

I am limited to PHP 4.4.9 so I cannot use the new timezone stuff added to PHP5.

Thanks, in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

客…行舟 2024-08-12 17:21:56
$time = new DateTime('now', new DateTimeZone('UTC'));
echo $time->format('F j, Y H:i:s');
$time = new DateTime('now', new DateTimeZone('UTC'));
echo $time->format('F j, Y H:i:s');
故事灯 2024-08-12 17:21:56

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

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

第一次,我忘记了调用 time( 之间的日期可能会改变) ) 和日期()。

This seems to work for me. Of course, you'll need to test it on PHP 4 since all of my servers have PHP 5, but the manual claims this should work for PHP 4.

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

First time around, I forgot that the date could change between the call to time() and date().

初雪 2024-08-12 17:21:56

这适用于 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);
}

Does this work for php 4.4.9?

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

or if you want it for a specific date:

$time = strtotime('January 1, 2000 UTC');
if($time){
    echo gmdate('Y-m-d H:i:s', $time);
}
我纯我任性 2024-08-12 17:21:56
$utcTtime = gmmktime();
$unixTimestamp = time();

gmmktime:获取 Unix 时间戳格林威治标准时间日期

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

gmmktime: Get Unix timestamp for a GMT date

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文