我有一个不在当前时区的日期时间字符串: 2019-08-18T10:01:02Z我需要这个字符串的 Carbon 版本。当我简单地做: (new Carbon("2019-08-19 00:37:46"))->format('Y-m-d H:i:s');它吐出: 2019-08-18 10:01:02我需要它来获取值2019-08-18 06:01:02(代表最终用户应用程序的设置时区)。有没有办法在调用 Carbon 时不指定时区来做到这一点?例如没有做Carbon::parse($file->getClientModified())->tz('America/New_York')。例如,我知道strtotime考虑到时区,因此:Carbon::createFromTimestamp(strtotime($str))会起作用,但我觉得必须有一些内部函数可以做到这一点,而我不知道。基本上,我试图避免date_default_timezone_get()在任何地方调用或获取一些配置变量。时区通常通过date_default_timezone_set().
2 回答
慕斯709654
TA贡献1840条经验 获得超5个赞
您可以将第二个参数传递给构造函数,以指定时区。
例如:
$carbon = new Carbon('2019-08-19 00:37:46', 'America/Los_Angeles');
如果您想在应用程序方面更改它,只需在应用程序引导期间进行。在您的应用程序服务提供者中,您可以在boot()
方法中进行基本的 boostrapping 。
例如:
public function boot() {
date_default_timezone_set('America/Los_Angeles');
}
慕工程0101907
TA贡献1887条经验 获得超5个赞
更新 config 文件夹中的 app.php 并更新那里的时区
'timezone' => 'America/New_York'
希望这能解决问题
- 2 回答
- 0 关注
- 430 浏览
添加回答
举报
0/150
提交
取消