diffForHumans
“一个月前”比“30 天前”更便于阅读,很多日期库都提供了这个常见的功能,日期被解析后,有下面两种可能性:
1、当比较的时间A 比 当前默认时间B 早:xxx前,比如1小时前,5秒前,1年前
2、当比较的时间A 比 当前默认时间B 晚:xxx前,比如1小时后,5秒后,1年后
你可以把第二个参数设置为 true 来删除“前”、“距现在”等修饰语:diffForHumans(Carbon $other, true)。
echo Carbon::now()->subDays(5)->diffForHumans() . PHP_EOL; // 5天前
// 这里Carbon::now()->subDays(5)为 比较时间A,
// diffForHumans(),第一个参数为空,默认是Carbon::now(),为当前默认时间B,
// A减去5天和现在比,可不就是:5天前
echo Carbon::now()->diffForHumans(Carbon::now()->subYear()) . PHP_EOL; // 11个月后,
echo Carbon::now()->diffForHumans(Carbon::now()) . PHP_EOL; // 1秒前
echo Carbon::now()->diffForHumans(Carbon::now()->subDay()) . PHP_EOL; // 23小时后
$dt = Carbon::createFromDate(2011, 8, 1);
echo $dt->diffForHumans($dt->copy()->addMonth()) . PHP_EOL; // 1月前
echo $dt->diffForHumans($dt->copy()->subMonth()) . PHP_EOL; // 1个月后
echo Carbon::now()->addSeconds(5)->diffForHumans() . PHP_EOL; // 4秒后
echo Carbon::now()->subSeconds(5)->diffForHumans() . PHP_EOL; // 5秒前
echo Carbon::now()->subDays(24)->diffForHumans() . PHP_EOL; // 3周前
echo Carbon::now()->subDays(24)->diffForHumans(null, true) . PHP_EOL; // 3周
网友评论