如何使日期格式在所有环境中保持一致

how to make date formating consistent in all envirnment

我正在使用 PHP 7.3.

我正在尝试将strtotime()格式格式化为ISO格式,但结果占用了系统的时区,导致不同环境下的结果不一致。

$date = date('Y-m-d\TH:i:s'.substr((string)microtime(), 1, 4).'\Z',1585526400);

在 phpfiddle 中,输出为 2020-03-30T00:00:00.475Z,在本地系统中为 2020-03-30T05:30:00.415Z,在服务器中为 2020-03-30T05:00:00.415Z

如果我将代码更改为

$date = date(DATE_ISO8601, 1585526400);

phpfiddle 输出 2020-03-30T00:00:00+0000,本地 2020-03-30T05:30:00+0530 和服务器 2020-03-30T05:00:00+0500

如何使它保持一致?

您可以明确设置时区。示例片段:

$date = new DateTime();
$date->setTimezone(new DateTimeZone('UTC'));
$date->setTimestamp(1585526400);
echo $date->format('Y-m-d\TH:i:s');

您可以通过在获取日期和时间时将时区设置为:

$dateTime = new DateTime('now', new DateTimeZone('UTC'));
$dateTime = $dateTime->format("y-m-d H:i:s");
echo $dateTime;