UTC 日 2022-12-11 从 unix 时间 1670716800 开始(显然可以被 24*3600 整除)。
在 PHP 中,我可以这样从左到右转换它:
$Date = "2022-12-11";
echo strtotime ($Date." 00:00 UTC");
不出所料,输出为 1670716800.
但是如何转换回来呢?如果我这样做
getdate(1670716800)
,我会得到一个有时间的约会,但在我当地的时区,而我想要UTC。
如果可以避免,我不想使用面向对象的 PHP。
我的时区是 UTC,所以你会得到不同的结果,但是使用
date_default_timezone_set()
函数来定义 date()
函数将如何处理时间戳
$Date = "2022-12-11";
$tstamp = strtotime ($Date." 00:00:00 UTC");
echo date_default_timezone_get() . '-';
echo date('Y/m/d H:i:s', $tstamp) . PHP_EOL. PHP_EOL;
date_default_timezone_set('America/Los_Angeles');
echo date_default_timezone_get() . '-';
echo date('Y/m/d H:i:s', $tstamp) . PHP_EOL. PHP_EOL;
date_default_timezone_set('Australia/Brisbane');
echo date_default_timezone_get() . '-';
echo date('Y/m/d H:i:s', $tstamp) . PHP_EOL;
结果
UTC-2022/12/11 00:00:00
America/Los_Angeles-2022/12/10 16:00:00
Australia/Brisbane-2022/12/11 10:00:00
gmdate("Y-m-d H:i:s", 1670716800)
返回"2022-12-11 00:00:00"
.
gmdate("Y-m-d H:i:s")
以该格式返回当前 GMT/UTC 时间(因为 GMT 时间被定义为等于 UTC 时间)。
$timestamp = 1607980736;
$utc_date_time = date('Y-m-d H:i:s', $timestamp);
echo $utc_date_time;
输出: 2021-12-11 16:45:36