Carbon::now() 具有时间偏移会导致不同的行为

Carbon::now() with time-offset result in different behaviors

我正在使用 Carbon 来处理 laravel 项目中的日期。

Carbon::now('+5:30');

以上代码在本地环境中运行良好,但在开发环境中运行不正常。

这就是我在 dd(Carbon::now('+5:30'));

上看到的

1 - 在本地环境中 php 版本 - 5.6.3

2 - 开发环境 php 版本 - 5.5.9-1ubuntu4.14

但是如果我使用时区名称而不是像

这样的时间偏移,那么两个环境的行为都是一样的
 Carbon::now('Asia/Tokyo');

这是关于 php-version 还是其他什么?

您可以在

中更改
'timezone' => 'UTC'

此时区必须与您所在的国家/地区匹配zone.So将此 UTC 替换为您当前所在的时区。

搜索相关问题后,我有一个答案给你。

PHP 版本 5.5.9 似乎有一个错误:

因此您不能将此方法与 Carbon 一起使用,但以下方法应该有效:

Carbon::now()->addHours(5)->addMinutes(30);

您可以将服务器时区放在那里以提高准确性:

Carbon::now(date_default_timezone_get())->addHours(5)->addMinutes(30);