碳现在错了

问题描述 投票:9回答:3

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

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

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

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

php datetime laravel php-carbon
3个回答
9
投票

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

这可能是由于:

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

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

要解决这个问题,你应该change the timezone in your php.ini file(说明来自链接):

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

date.timezone =“美国/中部”

或者,如果您希望PHP使用其他时区,则应将US/Central时区替换为所需的时区as outlined here


11
投票

碳是基于UTC的,因此简单地做Carbon::now()将以UTC格式输出时间

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

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

Carbon::now('PST') OR Carbon :: now('Continent / City')就像(Carbon::now('America/Montreal')一样


2
投票

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

 'timezone' => 'YOUR TIME ZONE',
© www.soinside.com 2019 - 2024. All rights reserved.