迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > PHP >

在 PHP 中获取 UTC 时间

作者:迹忆客 最近更新:2023/03/27 浏览次数:

本文介绍如何使用五种方法在 PHP 中获取 UTC。 这些方法将使用 date_default_timezone_set()gmdate()strtotime()date() 和 DateTime 对象。


使用 gmdate() 获取 UTC 时间

gmdate() 函数将以 UTC 格式格式化日期和时间。 一旦您为 gmdate() 提供了您的日期时间格式,例如 Y-m-d H:i:s,它将以 UTC 显示。

我们在以下代码中将当前时区设置为密歇根州底特律。 这将显示底特律的时间以及 UTC 的时间。

示例代码:

<?php
    // Use the time in Detroit, Michigan, as the default
    // time.
    date_default_timezone_set("America/Detroit");

    // We get the current time in Detroit, Michigan.
    $time_in_Detroit = date('Y-m-d H:i:s', time());

    // We get the UTC time using the gmdate() function
    $utc_time = gmdate("Y-m-d  H:i:s");

    // For comparison, we show the time in Detroit and
    // what it'll be in UTC.
    echo "The current time in Detroit is: " . $time_in_Detroit . PHP_EOL;
    echo "The UTC is: " . $utc_time;
?>

输出(你会得到不同的结果):

The current time in Detroit is: 2022-07-27 17:32:36
The UTC is: 2022-07-27  21:32:36

使用 strtotime() 获取 UTC 时间

strtotime() 方法将文本日期时间解析为 Unix 时间戳。 在那之后,你可以用时间戳做你想做的事。

在下面的代码中,我们使用 gmdate()strtotime() 获取时间戳。 然后我们将时间戳作为 date() 函数的第二个参数传递。

这样做允许您编写日期格式并获得 UTC 格式的结果。 为了比较,我们将脚本的时区设置为危地马拉。

示例代码:

<?php
    // Use the time in Guatemala as the default
    // time.
    date_default_timezone_set("America/Guatemala");

    // We get the current time in Guatemala
    $time_in_Guatemala = date('Y-m-d H:i:s', time());

    // We get the UTC UNIX timestamp
    $utc_timestamp = strtotime(gmdate("M d Y H:i:s"));

    // We convert the UNIX timestamp to UTC
    $utc_time = date('Y-m-d H:i:s', $utc_timestamp);

    // For comparison, we show the time in Guatemala
    // and what it'll be in UTC.
    echo "The time in Guatemala is: " . $time_in_Guatemala . PHP_EOL;
    echo "The UTC is: " . $utc_time;
?>

输出(你会得到不同的结果):

The time in Guatemala is: 2022-07-27 15:48:01
The UTC is: 2022-07-27 21:48:01

使用 date() 获取 UTC 时间

我们将使用 date() 函数来格式化日期,但通过一些数学运算,date() 将返回 UTC。 数学涉及从纪元时间减去时区偏移量,然后将结果作为 date() 函数的第二个参数传递。

为了便于比较,我们将时区更改为澳大利亚阿德莱德。 当您运行下面的代码时,您将看到 UTC 以及它在阿德莱德的情况。

示例代码:

 <?php
    // Use the time in Adelaide, Australia, as the default
    // time.
    date_default_timezone_set("Australia/Adelaide");

    // We get the current time in Adelaide
    $time_in_Adelaide = date('Y-m-d H:i:s', time());

    // We get the UTC time using the date() function.
    $utc_time = date("Y-m-d H:i:s", time() - date("Z"));

    // For comparison, we show the time in Adelaide
    // and what it'll be in UTC.
    echo "The time in Adelaide is: " . $time_in_Adelaide . PHP_EOL;
    echo "The UTC is: " . $utc_time;
?>

输出(你会得到不同的结果):

The time in Adelaide is: 2022-07-28 07:56:31
The UTC is: 2022-07-27 22:26:31

使用 date_default_timezone_set() 获取 UTC 时间

date_default_timezone_set() 函数用于更改时区。 我们还可以通过将其参数更改为 UTC 来使用它来返回 UTC。

因此,无论 PHP 脚本中的时间如何,它将始终采用 UTC。

<?php
    // Set the default time zone to UTC and all
    // date and time of the current PHP script will
    // be in UTC.
    date_default_timezone_set("UTC");

    // As usual, get the date, but this time, it'll
    // return the time in UTC. That's because this script
    // has its time zone set to UTC.
    $utc_time = date('Y-m-d H:i:s', time());
    echo "The UTC is: " . $utc_time;
?>

输出(你会得到不同的结果):

The UTC is: 2022-07-27 22:36:02

使用 DateTime 对象获取 UTC 时间

DateTime 对象和 DateTimeZone 对象的组合可以返回 UTC。 要返回 UTC,将 DateTime 的第一个和第二个参数设置为 nownew \DateTimeZone("UTC"),然后您可以以 RFC 850 格式显示结果。

示例代码:

<?php
    // Get the UTC using the DateTime object.
    // Its first parameter should be the
    // string "now". And its second parameter should
    // be a new DateTimeZone object and its parameter
    // should be the string "UTC".
    $utc_time = new \DateTime("now", new \DateTimeZone("UTC"));

    // Format the date to show it's a UTC date
    // A sample output is: Wednesday, 27-Jul-22 15:02:41 UTC
    echo $utc_time->format(\DateTime::RFC850);
?>

输出(你会得到不同的结果):

Wednesday, 27-Jul-22 23:00:42 UTC

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 PHP 中获取时间差的分钟数

发布时间:2023/03/29 浏览次数:183 分类:PHP

本文介绍了如何在 PHP 中获取时间差的分钟数,包括 date_diff()函数和数学公式。它包括 date_diff()函数和数学公式。

PHP 中的重定向

发布时间:2023/03/29 浏览次数:136 分类:PHP

本教程演示了如何将用户从页面重定向到 PHP 中的其他页面

PHP 分页

发布时间:2023/03/29 浏览次数:66 分类:PHP

本教程介绍如何在 PHP 中对数据库行进行分页

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便