php 日期返回 1970-01-01 08:00:00

时间:2020-12-29 05:16:37

标签: php strtotime

<?php 
echo date("Y-m-d H:i:s", 0);
 ?>

//结果:1970-01-01 08:00:00

我的问题:函数日期的第二个参数是0,应该是1970-01-01 00:00:00。 为什么是 1970-01-01 08:00:00 ?
我在 php.ini 中设置了配置
[日期]
date.timezone=Asia/Ho_Chi_Minh
//Asia/Ho_Chi_Minh: UTC + 7 (GMT + 7)
请帮帮我。

3 个答案:

答案 0 :(得分:1)

来自wiki

<块引用>

Unix 纪元是 1970 年 1 月 1 日 UTC 时间 00:00:00

如您所见,开头是由 UTC 时区开始的。这意味着当 Unix 时代开始时,它是 8:00 中的 Asia/Ho_Chi_Minh

如果你需要得到 0:00 你必须设置负的第二个参数

date_default_timezone_set('Asia/Ho_Chi_Minh'); // Set UTC timezone
echo date("Y-m-d H:i:s", -(8 * 60 * 60));

Demo

答案 1 :(得分:0)

Date phpDefault timezone set 如果您想设置当前时间:

date_default_timezone_set('Asia/Ho_Chi_Minh');
echo date("Y-m-d H:i:s");

您不需要第二个参数。

答案 2 :(得分:0)

date() 总是显示当地时间。那是给你的亚洲/胡志明市。 gmdate() 函数用于显示 UTC/GMT 时间。

echo gmdate("Y-m-d H:i:s", 0);
//Result: 1970-01-01 00:00:00

您也可以使用日期时间。如果 DateTime 是根据时间戳创建的,则内部时区始终为 UTC。

$dateTime = new DateTime('@0');
echo $dateTime->format("Y-m-d H:i:s");
//Result: 1970-01-01 00:00:00

您无需为任一选项更改默认时区。

相关问题