在 PHP 中将 unix 时间转换为 UTC 日期/时间

问题描述 投票:0回答:3

UTC 日 2022-12-11 从 unix 时间 1670716800 开始(显然可以被 24*3600 整除)。

在 PHP 中,我可以这样从左到右转换它:

$Date = "2022-12-11";
echo strtotime ($Date." 00:00 UTC"); 

不出所料,输出为 1670716800.

但是如何转换回来呢?如果我这样做

getdate(1670716800)
,我会得到一个有时间的约会,但在我当地的时区,而我想要UTC。

如果可以避免,我不想使用面向对象的 PHP。

php timezone unix-timestamp
3个回答
0
投票

我的时区是 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

0
投票

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 时间)。


-1
投票
$timestamp = 1607980736;
$utc_date_time = date('Y-m-d H:i:s', $timestamp);
echo $utc_date_time;

输出: 2021-12-11 16:45:36

© www.soinside.com 2019 - 2024. All rights reserved.