42

我正在尝试为Carbon对象中的日期设置时区。它在本地运行良好,但在我的生产机器上它一直给我Bad timezone错误。

我试过了:

$date->setTimezone('7');
$date->setTimezone('+7');
$date->setTimezone('7:00');
$date->setTimezone('+7:00');
$date->setTimezone('UTC 7');
$date->setTimezone('UTC +7');
$date->setTimezone('UTC 7:00');
$date->setTimezone('UTC +7:00');

不知道为什么它抱怨我的生产箱。也找不到有关在此处输入的“正确”格式的文档。有人可以帮忙吗。

仅供参考:local 是 windows,prod 是 Ubuntu 盒子。

4

3 回答 3

69

您可以使用以下方法更改时区:

$timestamp = '2014-02-06 16:34:00';
$date = Carbon::createFromFormat('Y-m-d H:i:s', $timestamp, 'Europe/Stockholm');
$date->setTimezone('UTC');

这种格式适用于我的 Local(Ubuntu) 和 prod(Redhat) 项目。

于 2015-02-19T09:21:28.093 回答
17

I think you should refer to the official php timezone list. In your case you can use

$date->setTimezone('Asia/Phnom_Penh');

for UTC+7:00.

于 2015-02-19T09:48:47.880 回答
7

对于想知道的人,您可以像这样链接时区:

Carbon::now()->timezone('Europe/Stockholm')
于 2020-08-19T08:50:52.547 回答