查找每年的日期差异输出

时间:2020-07-22 09:27:05

标签: php

现在我用date_diff()来查找日期差异

public function getDateDiff($date1,$date2){
    $date1 = date_create('2019-12-29');
    $date2 = date_create('2020-01-05');
    $diff = date_diff($date1,$date2); // Diff is 7 days
}

我需要将输出作为数组之类的

$date1 = date_create('2019-12-29');
$date2 = date_create('2020-01-05');
$diff_array = getDateDiff($date1,$date2);
$diff_array['2019'] = 2; // 29 Dec 2019 - 31 Dec 2019 
$diff_array['2020'] = 5; // 1 Jan 2020 - 5 Jan 2020

$date1 = date_create('2020-10-10');
$date2 = date_create('2020-10-20');  
$diff_array = getDateDiff($date1,$date2);  
$diff_array['2020'] = 10; // 10 Jan 2020 - 20 Jan 2020

2 个答案:

答案 0 :(得分:0)

Ciao,您可以执行以下操作:

  1. 从每个日期获取年份;
  2. 如果年份相等,则$diff_array[$date1->format("Y")] = $diff_array.format("d");
  3. 否则用$ date1年的最后一天,计算差额,然后计算$diff_array[$date1->format("Y")] = $diff_array.format("d");
  4. 以$ date2年的第一天为准,计算差额,然后计算$diff_array[$date2->format("Y")] = $diff_array.format("d");

答案 1 :(得分:0)

https://github.com/briannesbitt/Carbon


   $date='11-12-2010'; 
   Carbon::parse($date)->diffForHumans(); //10 years ago 

在将两个日期与DateTime进行比较之前,您可以执行此操作


$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a days');