Use ISO-8601 Date and Time Format with PHP

PHP:8.0

通常與國外廠商串接資料,或者在產生一些國際標準文件格式時,日期和時間的表示方式會要求使用 ISO-8601 標準,像是 2021-03-13T22:22:03+0800 這樣。

由於這是國際標準,PHP 該有的格式都有提供,可以參考 PHP: DateTime - Manual

Basic Usage

在官網的範例裡可以看到一些定義好的國際標準常數。

const string DateTimeInterface::ATOM = "Y-m-d\TH:i:sP" ;
const string DateTimeInterface::COOKIE = "l, d-M-Y H:i:s T" ;
const string DateTimeInterface::ISO8601 = "Y-m-d\TH:i:sO" ;
const string DateTimeInterface::RFC822 = "D, d M y H:i:s O" ;
const string DateTimeInterface::RFC850 = "l, d-M-y H:i:s T" ;
const string DateTimeInterface::RFC1036 = "D, d M y H:i:s O" ;
const string DateTimeInterface::RFC1123 = "D, d M Y H:i:s O" ;
const string DateTimeInterface::RFC7231 = "D, d M Y H:i:s \G\M\T" ;
const string DateTimeInterface::RFC2822 = "D, d M Y H:i:s O" ;
const string DateTimeInterface::RFC3339 = "Y-m-d\TH:i:sP" ;
const string DateTimeInterface::RFC3339_EXTENDED = "Y-m-d\TH:i:s.vP" ;
const string DateTimeInterface::RSS = "D, d M Y H:i:s O" ;
const string DateTimeInterface::W3C = "Y-m-d\TH:i:sP" ;

使用的方式也很容易,在 PHP 常數前面加上 DATE_即可。

echo date(DATE_ISO8601) . PHP_EOL;
echo date(DATE_RFC3339) . PHP_EOL;
echo date(DATE_ATOM, strtotime('2021-01-02')) . PHP_EOL;
Categories: PHP