如何计算两个日期之间的天数,并在php中的文本框中显示结果


how to count number of days between two dates and display the result in a textbox in php

<li>Date From *<br />
  <input type="text" name="date_from" id="date_from" value="<?=gf_dateformat($date_from,'Y-m-d') ?>" onclick="javascript: displayDatePicker('date_from', false, 'dmy', '-');" style="width:100px;" />
</li>
<li>Date TO *<br />
  <input type="text" name="date_to" id="date_to" value="<?=gf_dateformat($date_to,'Y-m-d') ?>" onclick="javascript: displayDatePicker('date_to', false, 'dmy', '-');" style="width:100px;" onblur="" /> 
</li>                   
<li>No of Days <br />
  <input type="text" name="num_days" id="num_days" required="yes" validate='text'  title="Enter Number of Days"/>
</li>

这样您就可以在JS中找到两个日期的差异。

 var Days = Math.floor((Date2.getTime() - Date1.getTime())/(1000*60*60*24));

在php中,您可以使用以下代码。。。

$startTimeStamp = strtotime("2011/07/01");
$endTimeStamp = strtotime("2011/07/17");
$timeDiff = abs($endTimeStamp - $startTimeStamp);
$numberDays = $timeDiff/86400;  // 86400 seconds in one day
// and you might want to convert to integer
$numberDays = intval($numberDays);

尝试下面的函数。作品优秀:

/**
 * Calculates the difference between two dates in days, months and years.
 * @param $start_date string Starting date.
 * @param $end_date string Ending date.
 * @return string Specifying the days, months and years in difference.
 * @category Date
 */
function get_date_diff($start_date, $end_date)
{
    $diff = abs(strtotime($end_date) - strtotime($start_date));
    $years = floor($diff / (365*60*60*24));
    $months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24));
    $days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));
    return "{$days} days, {$months} months, {$years} years";
}

在PHP中有两种方法可以计算日期之间的差异,即过程和面向对象。

程序样式

$datetime1=date_create('YYYY-mm-dd');$datetime2=date_create('YYYY-mm-dd');$interval=date_diff($datetime1,$datetime2);echo$interval->格式("%R%a天");
      

面向对象的样式

$datetime1=新的DateTime('YYYY-mm-dd');$datetime2=新的DateTime('YYYY-mm-dd');$interval=$datetime1->diff($datetime2);echo$interval->格式("%R%a天");

您可以使用其中任何一个。