【发布时间】:2018-04-19 18:14:00
【问题描述】:
我有一对日期(开始和结束):
示例 1: 开始日期:2018-01-01 结束日期:2018-06-30
示例 2: 开始日期:2017-06-07 结束日期:2017-12-31
当我应用以下内容时
return $this->end_date->diffForHumans($this->start_date,true);
对于示例 1,我得到以下结果: “5 个月”
然后,当我应用以下内容时
return $this->end_date->diffForHumans($this->start_date,true);
对于示例 2,我得到以下结果: “6 个月”
如何设置碳或在第一个示例中显示“6 个月”,我的意思是,将其四舍五入到最接近的月份数? 因为在第一个例子中,超过了 5 个半月,所以对我来说,结果最好是“6 个月”,甚至更好的是“5 个月半”。
我已经尝试了docs 中解释的所有参数,但没有运气。
【问题讨论】:
-
第一个例子其实是整整6个月。你要从 1 月 1 日到 6 月 30 日。我不确定您为什么认为将其显示为 5 个半月 会更好。如果有的话,应该显示为 6 个月。
-
我同意。那我怎样才能使它结果为 6 个月(最近的月份数)?
-
你考虑过
diffInMonths()方法吗? -
是的,我已经考虑过并尝试过,得到了相同的结果。
-
我认为你无法单独使用
Carbon来完成它。相反,我认为你需要一个自定义函数。如果您使用$end->diff($start),那么您可以获得天数的差异。将其除以一个月的平均 30.41 天,并取上限值,您可以四舍五入到最接近的月份。
标签: php datetime php-carbon