碳的时区如何运作?如何根据指定的时区获取日期时间?

问题描述

我在使用 Carbon::Now() 时遇到了困难,我在 Now 函数中指定了所需的时区,但它没有根据给定的时区给出日期时间。它始终使用 Laravel 中指定的 UTC 时区。

Carbon::Now() // giving me date time of UTC timezone
Carbon::Now('Asia/Karachi') // still giving me the date time of UTC timezone
var_dump(Carbon::Now('Asia/Karachi')) // I'm able to see the correct date time based on the timezone. 

因此,当我使用 var_dump() 时,我会根据给定的时区获得正确的日期时间。谁能解释为什么它没有从 Carbon::Now('Asia/Karachi') 返回正确的时区?但转储显示正确日期时间的实例。

我也试过 PHP artisan cache:clearPHP artisan config:clear

解决方法

config/app.php 文件中,将 UTC 更改为您想要的时区。它将在全球范围内更改应用程序时区。 例如: 'timezone' => 'Asia/Dhaka',

,

它总是使用 UTC 时区

在哪里?如果您谈论的是 JSON 输出,则预期日期格式为 ISO-8601 字符串和尾随 Z 表示祖鲁语 = GMT 时区。读取此 JSON 的浏览器或客户端可以使用用户设备时区将其重新转换为任何本地日期时间。

但在任何时候,如果您使用任何格式将此实例显式转储为字符串,则将使用指定的时区:

Carbon::now('Asia/Karachi')->format('Y-m-d H:i:s.u p')

(此处使用 pe 您将在字符串中明确看到时区。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...