You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel/PHP日期差值计算求助:获取账户创建天数遇类型转换报错

解决Carbon对象无法转换为整数的报错,正确计算账户创建至今的天数

你遇到的这个报错是因为不能直接用减号操作两个Carbon对象——PHP会尝试把Carbon实例转换成整数,但Carbon并没有实现这种类型转换,所以抛出了这个错误。而且你的代码里还有个多余的步骤:auth()->user()->created_at本身已经是Carbon对象了,完全没必要转成字符串再用Carbon::parse()重新解析~

正确的实现步骤

要计算账户创建日期到今天的天数差,直接用Carbon提供的diffInDays()方法就可以了,这个方法会直接返回整数类型的天数:

// 获取用户的创建日期(本身就是Carbon实例)
$createdAt = auth()->user()->created_at;

// 计算到今天的天数差
$daysSinceCreation = $createdAt->diffInDays(Carbon::today());

return $daysSinceCreation;

额外说明

  • 如果想要确保返回的是正数(比如极端情况下用户的创建日期被设置为未来日期),可以给diffInDays()加第二个参数true(表示取绝对值):
$daysSinceCreation = $createdAt->diffInDays(Carbon::today(), true);
  • 如果你原本的代码里$two_days_after是想计算注册两天后的日期(而不是天数差),那应该用addDays()方法:
$twoDaysAfterRegistration = $createdAt->addDays(2);
// 如果要转成日期字符串,用toDateString()
return $twoDaysAfterRegistration->toDateString();

这样就完全避免了对象转整数的问题,而且代码更简洁高效~

内容的提问来源于stack exchange,提问作者user9653376

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:08:13