Function gethour ($ addtime)
{
$ Nowtime = date ("Y-m-d h: I: s ");
Echo datediff ('n', $ addtime, $ nowtime, false );
}
Function datediff ($ interval, $ datefrom, $ dateto, $ using_timestamps = false ){
/*
$ Interval can be:
Yyyy-number of full years
Q-number of full quarters
M-number of full months
Y-difference between day numbers
(Eg 1st Jan 2004 is "1", the first day. 2nd Feb 2003 is "33". The datediff is "-32 ″.)
D-number of full days
W-number of full weekdays
WW-number of full weeks
H-number of full hours
N-number of full minutes
S-number of full seconds (default)
*/
If (! $ Using_timestamps ){
$ Datefrom = strtotime ($ datefrom, 0 );
$ Dateto = strtotime ($ dateto, 0 );
}
$ Difference = $ dateto-$ datefrom; // difference in seconds
Switch ($ interval ){
Case 'yyyy': // number of full years
$ Years_difference = floor ($ difference/31536000 );
If (mktime (date ('h', $ datefrom), date ('I', $ datefrom), date ('s', $ datefrom), date ('n ', $ datefrom), date ('J', $ datefrom), date ('y', $ datefrom) + $ years_difference)> $ dateto ){
$ Years_difference -;
}
If (mktime (date ('h', $ dateto), date ('I', $ dateto), date ('s', $ dateto), date ('n ', $ dateto), date ('J', $ dateto), date ('y', $ dateto)-($ years_difference + 1)> $ datefrom ){
$ Years_difference ++;
}
$ Datediff = $ years_difference;
Break;
Case "Q": // number of full quarters
$ Quarters_difference = floor ($ difference/8035200 );
While (mktime (date ('h', $ datefrom), date ('I', $ datefrom), date ('s', $ datefrom), date ('n ', $ datefrom) + ($ quarters_difference * 3), date ('J', $ dateto), date ('y', $ datefrom) <$ dateto ){
$ Months_difference ++;
}
$ Quarters_difference -;
$ Datediff = $ quarters_difference;
Break;
Case 'M': // number of full months
$ Months_difference = floor ($ difference/2678400 );
While (mktime (date ('h', $ datefrom), date ('I', $ datefrom), date ('s', $ datefrom), date ('n ', $ datefrom) + ($ months_difference), date ('J', $ dateto), date ('y', $ datefrom) <$ dateto ){
$ Months_difference ++;
}
$ Months_difference -;
$ Datediff = $ months_difference;
Break;
Case 'y': // difference between day numbers
$ Datediff = Date ('Z', $ dateto)-date ('Z', $ datefrom );
Break;
Case 'D': // number of full days
$ Datediff = floor ($ difference/86400 );
Break;
Case 'W': // number of full weekdays
$ Days_difference = floor ($ difference/86400 );
$ Weeks_difference = floor ($ days_difference/7); // complete weeks
$ First_day = Date ('w', $ datefrom );
$ Days_remainder = floor ($ days_difference % 7 );
$ Odd_days = $ first_day + $ days_remainder; // do we have a Saturday or Sunday in the remainder?
If ($ odd_days> 7) {// Sunday
$ Days_remainder -;
}
If ($ odd_days> 6) {// Saturday
$ Days_remainder -;
}
$ Datediff = ($ weeks_difference * 5) + $ days_remainder;
Break;
Case 'ww ': // number of full weeks
$ Datediff = floor ($ difference/604800 );
Break;
Case 'H': // number of full hours
$ Datediff = floor ($ difference/3600 );
Break;
Case 'N': // number of full minutes
$ Datediff = floor ($ difference/60 );
Break;
Default: // number of full seconds (default)
$ Datediff = $ difference;
Break;
}
Return $ datediff;
}