碳现在错了

amb*_*960 10 php datetime laravel php-carbon

我刚开始使用Carbon扩展(到目前为止似乎非常甜),但我对这个Carbon::now()功能感到困惑.根据文档,似乎这个函数应该反映用户当前时区的当前时间,但是,我似乎比GMT提前一小时.

也就是说Carbon::now(),2015-01-01 17:26:46当我在太平洋标准时间,它实际上是当前2015-01-01 08:26:46.

我是否必须为所有实例检测并输入用户本地时区?

是什么赋予了?(我很可能对网站如何获得用户当地时间有一个根本的误解)

小智 11

Carbon是基于UTC的,因此只需Carbon::now()输出以UTC格式输出的时间

您必须指定时区以准确反映您所在城市或地区的日期时间.

有两种方法可以做到这一点.你可以这样做:

Carbon::now('PST')碳::现在("洲/城")一样(Carbon::now('America/Montreal'),例如


ASt*_*her 9

这似乎是因为您的服务器的时区与您自己的时区不同.

这可能是由于:

  • 服务器配置错误
  • 服务器的物理位置位于不同的时区
  • 您的提供商的政策也可能导致此问题.如果您的提供商决定他们希望在世界各地的每台服务器上使用相同的时区,这将导致问题.

如您所述,服务器的时区似乎是CET(中欧时间),即+1 GMT.

要解决此问题,您应该更改php.ini文件中的时区(说明来自链接):

  1. 打开你的php.ini文件
  2. 将以下代码行添加到php.ini文件的顶部:

date.timezone ="美国/中部"

或者,如果您希望PHP使用其他时US/Central区,则应将时区替换为此处概述的所需时区.


Ris*_*shi 6

在 config/app.php 中更改您的时区

 'timezone' => 'YOUR TIME ZONE',
Run Code Online (Sandbox Code Playgroud)