📜  格式化日期时间 ISO php (1)

📅  最后修改于: 2023-12-03 15:26:42.765000             🧑  作者: Mango

格式化日期时间ISO PHP

在 PHP 中,格式化日期时间是一个非常常见的任务。ISO 8601 是一个国际标准,用于表示日期和时间的格式。在这篇文章中,我们将介绍如何在 PHP 中格式化日期时间为 ISO 8601 格式。

前置知识

在使用 PHP 格式化日期时间之前,你需要了解 PHP 中的日期时间函数。常用的日期时间函数有:

  • date():格式化一个本地时间或日期。
  • strtotime():将任何预定义日期时间格式或时间戳字符串解析为 Unix 时间戳。
  • time():获取当前 Unix 时间戳。
  • DateTime 类:代表日期和时间对象。
格式化当前日期时间

以下代码片段演示了如何获取当前时间,并将其格式化为 ISO 8601 格式。

$now = new DateTime();
$now->setTimezone(new DateTimeZone('UTC'));

echo $now->format('Y-m-d\TH:i:s\Z');
  • $now = new DateTime();:创建一个新的 DateTime 实例,代表当前时间。
  • $now->setTimezone(new DateTimeZone('UTC'));:将时间设为 UTC 时间。
  • $now->format('Y-m-d\TH:i:s\Z');:将时间格式化为 ISO 8601 格式。

输出结果为:2021-10-14T09:10:03Z

将字符串转换为 ISO 8601 格式

以下代码片段演示了如何将一个日期时间字符串转换为 ISO 8601 格式。

$date = '2021-10-14 11:22:33';
$datetime = new DateTime($date);
$datetime->setTimezone(new DateTimeZone('UTC'));

echo $datetime->format('Y-m-d\TH:i:s\Z');
  • $date = '2021-10-14 11:22:33';:定义一个日期时间字符串。
  • $datetime = new DateTime($date);:创建一个新的 DateTime 实例,代表 $date 时间。
  • $datetime->setTimezone(new DateTimeZone('UTC'));:将时间设为 UTC 时间。
  • $datetime->format('Y-m-d\TH:i:s\Z'):将时间格式化为 ISO 8601 格式。

输出结果为:2021-10-14T03:22:33Z

将时间戳转换为 ISO 8601 格式

以下代码片段演示了如何将一个时间戳转换为 ISO 8601 格式。

$timestamp = time();

$time = new DateTime();
$time->setTimestamp($timestamp);
$time->setTimezone(new DateTimeZone('UTC'));

echo $time->format('Y-m-d\TH:i:s\Z');
  • $timestamp = time();:获取当前时间戳。
  • $time = new DateTime();:创建一个新的 DateTime 实例,代表当前时间。
  • $time->setTimestamp($timestamp);:将时间设为 $timestamp 时间戳。
  • $time->setTimezone(new DateTimeZone('UTC'));:将时间设为 UTC 时间。
  • $time->format('Y-m-d\TH:i:s\Z');:将时间格式化为 ISO 8601 格式。

输出结果为:2021-10-14T09:10:03Z

总结

在 PHP 中,格式化日期时间为 ISO 8601 格式,可以通过 DateTime 类和其提供的一些函数来轻松完成。需要注意的是,这篇文章介绍的格式化方法仅适用于使用 UTC 时间的情况,如果不使用 UTC 时间,需要修改时区信息。