我有一个来自数据库的日期(类型日期):
2018-08-25
该日期采用法国时区。
当我这样做时:
$from = Carbon::parse("2018-08-25", 'Europe/Paris');
$from->timezone('UTC');
dd($from);
我得到:
date: 2018-08-24 22:00:00.0 UTC (+00:00)
这就是我想要的
但是当我使用数据库中的字段时:
$operation = Operation::findOrFail($request->operation);
$from = Carbon::parse($operation->date_ini, 'Europe/Paris');
$from->timezone('UTC');
dd($from);
我得到:
date: 2018-08-25 00:00:00.0 UTC (+00:00)
在我的数据库中,字段保存为:2018-08-25
,所以从字面上看,它的意思是2018-08-25 UTC
。所以结果是一致的。但我不知道如何处理它才能得到我想要的东西。这意味着我必须像数据库中的日期时间一样存储我的日期,以便我可以将其存储在 UTC 中,并减少 1 或 2 小时。有没有办法避免这种情况并保持简单?
有什么想法吗?
最佳答案
例如,如果您在 Carbon 的现有实例上调用 setTimezone(),它会将日期/时间更改为新时区
$changeTimeZone = \Carbon\Carbon::parse($operation->date_ini)->setTimezone('Asia/Dhaka')->format('H:i');
关于laravel - 使用 Carbon 更改时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69462732/