让我的API在我创建的日期返回diffForHumans():
public function getCreatedAtAttribute($value)
{
return \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $value)->diffForHumans();
}
这会产生例如
1 day ago
6 days ago
3 weeks ago
1 month ago
但我想要的是与Instagram一样简单地返回:
1d
6d
3w
1m
除了用空格分割返回的值并取第二个单词的第一个字母和数字之外,还有办法做到这一点吗?
编辑:输入问题的一个可爱场合为你解决了这个问题。
这就是我刚刚想出来的。似乎工作,但对任何其他解决方案开放。
public function getCreatedAtAttribute($value)
{
$diffForHumans = \Carbon\Carbon::createFromFormat('Y-m-d H:i:s', $value)->diffForHumans();
$data = explode(" ", $diffForHumans);
$number = $data[0];
$denominator = substr($data[1], 0, 1);
return $data[0] . $denominator;
}
答案 0 :(得分:1)
Carbon没有内置,但它应该足够简单,可以像这样操作输出:
str_replace([' days', ' day'], 'd', $diffForHumans);