There are such field values:

date1 = 10/18/2011 time1 = 0:00 date2 = 31/18/2011 time2 = 0:00 

In JavaScript, we count the difference of days like this:

 var date1 = $('input[name=date1]').val()+' '+$('select[name=time1]').val(); var date2 = $('input[name=date2]').val()+' '+$('select[name=time2]').val(); var rent_time_1 = new Date(date1); var rent_time_2 = new Date(date2); var nDaysLeft = rent_time_2 > rent_time_1 ? Math.ceil((rent_time_2 - rent_time_1) / (1000 * 60 * 60 * 24)) : null; 

On php we think so:

 $rent_time_1 = $IN->GBL('date1', 'POST').' '.$IN->GBL('time1', 'POST'); $rent_time_1 = strtotime($rent_time_1); $rent_time_2 = $IN->GBL('date2', 'POST').' '.$IN->GBL('time2', 'POST'); $rent_time_2 = strtotime($rent_time_2); $days = ($rent_time_2 - $rent_time_1) / 86400; 

On JS it turns out 14 days, and on php 13.

    2 answers 2

    So in JS you have ceil, but not in PHP? Here you have the difference: Math.ceil rounds forward and it turns 14, and PHP apparently by cutting (into a smaller one) turns out 13.

      And where correctly considers, in php or javascript?

      • in javascript - maximus007
      • And what dates do you compare? - iproger
      • Corrected, 18 and 31 - maximus007
      • $ days = ceil ($ rent_time_2 - $ rent_time_1) / 86400); in php, replace the corresponding line with this one. - iproger