如何在PHP中正确地从JavaScript转换时间?

dw1jzc5e  于 2023-02-07  发布在  PHP
关注(0)|答案(1)|浏览(133)

我有一个时间数组

[2023,1,3,17,0,0]

当我在javascript中使用Date.UTC时,它产生了正确的结果
我的代码

const utcDate1 = new Date(Date.UTC(2023, 1, 3, 17,0,0));
console.log(utcDate1.toUTCString());

结果:

"Fri, 03 Feb 2023 17:00:00 GMT"

如何在php中得到与javascript相同的结果?我尝试在php中使用mktime,但是返回的结果不是我所期望的。它相差一个月。
验证码:

echo date("d-m-Y H:i:s", mktime(17,0,0,1,3,2023));

PHP的结果:

03-01-2023 17:00:00
ctzwtxfj

ctzwtxfj1#

Javascript使用日期格式存储月份0开始:月份“0”表示1月。
PHP没有,php认为一月月1

这就是为什么在js中Date.UTC(2023, 1, 3, 17,0,0)表示2月3日,而在php中mktime(17,0,0,1,3,2023)表示1月3日。
当在php中使用js风格的日期输入[2023,1,3,17,0,0]时,你必须将月份值加1。
如果你的系统的这一部分是在你的控制之下,并且你有可能改变你用来在js和php之间交换日期值的格式,我强烈建议使用两个系统都能理解的格式,例如ISO 8601或unix时间戳。

相关问题