我需要将30天转换为1个月。如果用月份和天为单位,则类似于1年2个月2天 我在下面尝试过,但是会返回错误的结果
echo CarbonInterval::days(30)->cascade()->forHumans();
任何人都可以帮助我实现这一目标吗?
我尝试了以下解决方案,但相差仅2天
$convert = '30'; // days you want to convert
$years = ($convert / 365) ; // days / 365 days
$years = floor($years); // Remove all decimals
$month = ($convert % 365) / 30.5; // I choose 30.5 for Month (30,31) ;)
$month = floor($month); // Remove all decimals
$days = ($convert % 365) % 30.5; // the rest of days
// Echo all information set
echo 'DAYS RECEIVE : '.$convert.' days<br>';
echo $years.' years - '.$month.' month - '.$days.' days';
使用碳有什么好的解决方法
答案 0 :(得分:1)
是否必须是CarbonInterval?
Carbon::now()->subDays(1827)->diffForHumans()
呢?
它不起作用的原因(来自https://carbon.nesbot.com/docs/#api-interval):
默认因素是:
- 1分钟= 60秒
- 1小时= 60分钟
- 1天= 24小时
- 1周= 7天
- 1个月= 4周
- 1年= 12个月
CarbonIntervals不携带上下文,因此它们不能更精确 (无DST,无leap年,无实际月份长度或年份长度 考虑)。