how to calculate days difference between two dates in php
// how to calculate days difference between two dates in laraveluseDateTime;// inside Controller Class$startDate=newDateTime($request->start_date);$endDate=newDateTime($request->end_date);$daysDifference=($startDate->diff($endDate)->days);
Calculate the Difference Between Two Dates Using PHP
phpCopy$firstDate="2019-01-01";$secondDate="2020-03-04";$dateDifference=abs(strtotime($secondDate)-strtotime($firstDate));$years=floor($dateDifference/(365*60*60*24));$months=floor(($dateDifference-$years*365*60*60*24)/(30*60*60*24));$days=floor(($dateDifference-$years*365*60*60*24-$months*30*60*60*24)/(60*60*24));echo$years." year, ".$months." months and ".$days." days";//output: 1 year, 2 months and 3 days
$period=newDatePeriod(newDateTime('2010-10-01'),newDateInterval('P1D'),newDateTime('2010-10-05'));//Which should get you an array with DateTime objects. //To iterateforeach($periodas$key=>$value){//$value->format('Y-m-d') }
You are given two string(dd-mm-yyyy) representing two date,
you have to find number of all weekdays present in between given dates.functionnumber_of_days($days,$start,$end){$start=strtotime($start);$end=strtotime($end);$w=array(date('w',$start),date('w',$end));$x=floor(($end-$start)/604800);$sum=0;for($day=0;$day<7;++$day){if($days&pow(2,$day)){$sum+=$x+($w[0]>$w[1]?$w[0]<=$day||$day<=$w[1]:$w[0]<=$day&&$day<=$w[1]);}}return$sum;}functiongetWeeklyDayNumbers($startDate,$endDate){$weekdays=array('monday'=>0,'tuesday'=>0,'wednesday'=>0,'thursday'=>0,'friday'=>0,'saturday'=>0,'sunday'=>0);$weekdays['monday']+=number_of_days(0x02,$startDate,$endDate);// MONDAY$weekdays['tuesday']+=number_of_days(0x04,$startDate,$endDate);// TUESDAY$weekdays['wednesday']+=number_of_days(0x08,$startDate,$endDate);// WEDNESDAY$weekdays['thursday']+=number_of_days(0x10,$startDate,$endDate);// THURSDAY$weekdays['friday']+=number_of_days(0x20,$startDate,$endDate);// FRIDAY$weekdays['saturday']+=number_of_days(0x40,$startDate,$endDate);// SATURDAY$weekdays['sunday']+=number_of_days(0x01,$startDate,$endDate);// SUNDAYreturn$weekdays;}$weekdays=getWeeklyDayNumbers('01-01-2021','31-01-2021');print_r($weekdays);exit;
//get Date diff as intervals $d1=newDateTime("2018-01-10 00:00:00");$d2=newDateTime("2019-05-18 01:23:45");$interval=$d1->diff($d2);$diffInSeconds=$interval->s;//45$diffInMinutes=$interval->i;//23$diffInHours=$interval->h;//8$diffInDays=$interval->d;//21$diffInMonths=$interval->m;//4$diffInYears=$interval->y;//1