为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 Carbon 将日期时间字符串解析为当前默认时区?

如何使用 Carbon 将日期时间字符串解析为当前默认时区?

PHP
拉莫斯之舞 2021-11-26 19:55:07
我有一个不在当前时区的日期时间字符串: 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');

}


查看完整回答
反对 回复 2021-11-26
?
慕工程0101907

TA贡献1887条经验 获得超5个赞

更新 config 文件夹中的 app.php 并更新那里的时区

'timezone' => 'America/New_York'

希望这能解决问题


查看完整回答
反对 回复 2021-11-26
  • 2 回答
  • 0 关注
  • 430 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信