Carbon::now()没有使用UTC时间

20

我来自菲律宾。如果我使用Carbon::now(),它会捕获我的机器时间而不是UTC时间。

我的config/app.php文件是:

    'timezone' => 'UTC',

这是我的代码:

$log->dateRequest = Carbon::now();

如果我在晚上9点(菲律宾时间)发布请求,它会显示21:00:00,而不是13:00:00(来自UTC)。

6个回答

33

在你的一个问题中,你提到需要在你的应用程序中使用多个时区。因此,你可以动态添加时区:

Carbon::now('UTC')

或者在现有的日期上使用setTimezone('UTC')方法。


8

我在菲律宾时间上午12:21尝试过了,但是我得到的是2016-11-25 00:21:23。如果转换为UTC时间,应该是在16:21:00。 - Vahn Marty

3

Carbon使用默认的DateTime PHP对象。

获取默认时区:

date_default_timezone_get();
// or
Carbon::now()->timezoneName;

设置默认时区。
date_default_timezone_set('UTC');

var_dump(Carbon::now()->utc); // true;

2

你可以尝试这个。

$log->dateRequest = Carbon::now('GMT+8')

0
你也可以尝试这个:
\Carbon\Carbon::now()->timezone('Asia/Manila')

-1

试一下这个

date_default_timezone_set('Asia/Manila');
$date = Carbon::createFromFormat('F j, Y g:i:a', date('F j, Y g:i:a'));

dd($date->format('F j, Y g:i:a')); //  November 27, 2020 11:53:pm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接