[英]Laravel / Carbon - Return diffForHumans() in the shorter format like instagram
讓我的 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;
}
Carbon沒有內置此功能,但是它應該足夠簡單,可以像這樣操作輸出:
str_replace([' days', ' day'], 'd', $diffForHumans);
碳有這個內置:
$object->diffForHumans(null, null, true);
public function diffForHumans($other = null, $syntax = null, $short = false, $parts = 1, $options = null);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.