【问题标题】:Laravel 4 carbon date format change only onceLaravel 4碳日期格式仅更改一次
【发布时间】:2014-06-14 11:58:43
【问题描述】:

您好,我使用 laravel 4 作为应用程序页面,我喜欢碳日期功能,但日期格式有问题。我的日期格式类似于:

dd/mm/yyyy

我使用:

\Carbon\Carbon::createFromTimeStamp(strtotime(Auth::user()->created_at))->diffForHumans() 

显示它的年龄,但是当日期格式化时效果很好

yyy-mm-dd

我怎样才能只更改一次日期格式而不是每次。

【问题讨论】:

  • 你是什么意思“我怎么能只改变一次日期格式而不是每次。”?
  • 我已经创建了 yyyy-mm-dd 格式的字段,我只想在调用字段生日时更改日期格式,所以当我再次调用 created_at 字段时,它使用相同的格式。我想说的是我不想在全球范围内更改日期格式。
  • 更具体一点,在你想使用的地方显示一些代码,因为它现在只是我们的猜测。我猜你需要Carbon::createFromFormat('d/m/Y', $yourDate)
  • 听起来他可能想将 created_at 格式从 YYYY-MM-DD 更改为其他格式,这样他就不必每次都转换它。

标签: laravel php-carbon


【解决方案1】:

你可以试试这个:

$date = Auth::user()->created_at;
\Carbon\Carbon::createFromFormat('d/m/Y', $date)->diffForHumans();

你也可以试试这个(如果你想使用createFromTimeStamp方法):

$date = str_replace('/', '-', Auth::user()->created_at);
\Carbon\Carbon::createFromTimeStamp(strtotime($date))->diffForHumans();

【讨论】:

  • 这正是我所需要的,对不起,如果我不是更具体,但英语不是我的母语
【解决方案2】:

您可以创建一个访问器,在您执行 echo $user->created_at 时将使用该访问器:

public function getCreatedAtAttribute($attr)
{
    return Carbon::parse($attr)->diffForHumans();
}

有关访问器的更多信息:http://laravel.com/docs/eloquent#accessors-and-mutators

您甚至可以将其放在 BaseModel 类中,并让您的所有模型扩展基类以自动将所有 created_at 属性转换为您指定的日期格式。

【讨论】:

    【解决方案3】:

    在 Laravel 4 中更简单的日期格式全局设置:查看link

    事实上,使用 Carbon 的 lib 全局更改日期格式非常容易。 您所要做的就是在模型文件夹中创建一个 BaseModel.php 文件,然后为 Created_At 和 Updated_at 添加方法 -> 设置属性。 然后,使用此 BaseModel 扩展您的模型,所有日期都以您自己的格式显示。

    我希望你会喜欢这个发现...

    【讨论】:

      猜你喜欢
      • 2018-03-16
      • 2017-09-06
      • 2017-08-29
      • 1970-01-01
      • 2016-09-05
      • 2018-08-06
      • 1970-01-01
      • 1970-01-01
      • 2020-02-07
      相关资源
      最近更新 更多