<?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)
请帮帮我。
答案 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));
答案 1 :(得分:0)
Date php 和 Default 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
您无需为任一选项更改默认时区。