碳日期比较错误1小时

问题描述 投票:-1回答:1

所以,这对我来说似乎不正确。比较具有相同时区的两个日期仅相差一分钟时,它告诉我相差59分钟。

date_default_timezone_set('America/New_York');   

$stored_time = "2020-03-10 07:37:37 PM EST"; //Aprox 1 minute before Carbon::now()
$stored_time = Carbon::createFromFormat('Y-m-d h:i:s A T', $stored_time, 'EST');
echo $stored_time . "\n";
echo Carbon::now() . "\n";
$minutes_difference = Carbon::now()->diffInMinutes($stored_time);

echo $minutes_difference;

我目前正在使用下面的解决方法,但这对我来说意义不大。另外,当我同时回显$stored_timeCarbon::now()时,除非使用diffInMinutes()方法,否则不是显示小时差异。

$stored_time = Carbon::createFromFormat('Y-m-d h:i:s A T', $stored_time, 'EST')->subHour(1);

编辑:将stored_time调整为“ EST 2020-03-10 09:27:37 PM EST”(运行脚本之前约3分钟),这是输出:

stored_time: 2020-03-10 21:27:37
Carbon::now():2020-03-10 21:30:00
time(): 1583890200
minutes_difference: 57

所以,这对我来说似乎不正确。当比较两个时区相同的时区时,相差只有一分钟,这告诉我有59分钟的时差。 date_default_timezone_set('...

php laravel php-carbon
1个回答
0
投票

如果您在代码中始终使用相同的America/New_York时区,则将获得预期的结果。

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