[英]How to get the difference between two dates with 360 days/year, 30 days/month format?
[英]how to get diff days between two dates if I consider every month is day 30 only
$start_date = Carbon::parse(date('Y-m-d', strtotime('2022-08-17')));
$end_date = Carbon::parse(date('Y-m-d', strtotime('2022-09-01')));
$diff = $start_date->diffInDays($end_date);
這兩個日期之間的天數是15 ,因為 aug 是 31 天,但在我的情況下,我認為每個月都是 30 天,所以差異應該是14
Carbon 有一個daysInMonth
屬性,它返回給定日期的天數。 因此,您可以使用它並執行以下操作:
public function diffInDays($start_date, $end_date)
{
$diff = $start_date->diffInDays($end_date);
$daysInMonths = [$start_date->daysInMonth, $end_date->daysInMonth];
foreach ($daysInMonths as $count) {
if ($count >= 31) {
$diff--;
}
}
return $diff;
}
然后你會使用上面的如下:
$start_date = \Carbon\Carbon::parse(date('Y-m-d', strtotime('2022-08-17')));
$end_date = \Carbon\Carbon::parse(date('Y-m-d', strtotime('2022-09-01')));
$diff = $this->diffInDays($start_date, $end_date);
這可以改進,但原理按需要工作。 結果是14
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.