【问题标题】:diffForHumans does not work returns me The separation symbol could not CarbondiffForHumans 不起作用返回我 分隔符号不能 Carbon
【发布时间】:2018-07-14 15:30:42
【问题描述】:

我的MySQLfecha 中有一个字段作为日期时间,我想对其应用适当的格式,然后使用diffForHumans 获取差异,但它显示错误

"message": "找不到分隔符\r\n分隔符 找不到符号\r\n缺少数据", “异常”:“InvalidArgumentException”, "file": "C:\laragon\www\appcolegio\vendor\nesbot\carbon\src\Carbon\Carbon.php", “行”:582,

我班上有这个Visita

public function getFechaAttribute($value)
{

    return Carbon::createFromFormat('d/m/Y H:i:s',strtotime($value))
        ->timezone('America/Lima');
}

public function getDiffAttribute()
{
    $fx = $this->fecha;
    return Carbon::createFromFormat('d/m/Y H:i:s',strtotime($fx))
            ->timezone('America/Lima')
            ->diffForHumans();
}

在我看来,我想显示这两个值,一方面是当前日期与相应时区,另一方面是与相应时区的差异

我怎样才能实现它?使用 Laravel 5.5

【问题讨论】:

  • 请在下面查看我的答案。如果还想手动,请显示dd(strtotime($fx))的结果;
  • 好的。 dd($this->fech) 显示什么?
  • 好的。把dd($value)放在getFechaAttribute的开头
  • dd($value) 究竟显示了什么?
  • 我已经更新了答案。你使用了错误的格式。

标签: laravel laravel-5 php-carbon


【解决方案1】:

从以下位置更改格式:

d/m/Y H:i:s

收件人:

Y-m-d H:i:s

并删除strtotime()

【讨论】:

  • 它在一定程度上起作用。它唯一不做的就是将 d/m/YYYY h:m:s 的形式提供给 Fecha。记得我想在我的视图中显示两列
  • @DarkFenix 创建另一个访问器,但不适用于fecha。例如public function getFechaStringAttribute,然后在视图中使用fechaString。或者只是在视图中执行$model->fecha->format($customStringFormat)
  • 有效,但格式不会丢失?既然我希望 d/m/Y 或 d-m-Y ,就没有办法像那样显示它吗?
  • @DarkFenix 你可以为你想要的任何格式创建额外的访问器,比如getFechaYMDAttribute()
  • @DarkFenix 你已经知道如何创建一个额外的访问器(getDiffAttribute),我已经在another answer 中展示了如何将它附加到 JSON。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-21
  • 1970-01-01
  • 2019-11-04
  • 1970-01-01
  • 2019-01-23
  • 1970-01-01
相关资源
最近更新 更多