php中的开始和结束日期差异

时间:2010-12-03 07:45:17

标签: php date days

我会要求用户输入开始日期和结束日期。我希望从开始到结束获得所有日期,并获得这些日期之间的天数。如何在开始和结束日期的PHP中执行此操作。

5 个答案:

答案 0 :(得分:0)

将两个日期转换为时间戳,然后从一个计数到另一个,转换回日期。

答案 1 :(得分:0)

处理日期时,您可以像Ignacio推荐的那样转换为时间戳(秒)。但一般情况下,如果可能的话,你最好不要使用实际的日期和时间。更高层次的日子。

为此,请参阅PHP内置的DateTime类:

http://www.php.net/manual/en/class.datetime.php

http://www.php.net/manual/en/class.dateinterval.php

这些在PHP 5.2中得到了很好的支持,但PHP 5.3增加了更好的DateTime处理功能。

答案 2 :(得分:0)

此代码的最终结果将是天数。

$ days =(strtotime(date(“Y-m-d”)) - strtotime(“2010-08-20”))/(60 * 60 * 24);  echo $ days;

答案 3 :(得分:0)

阅读我对这个主题的回答,举例:

Calculate number of hours between 2 dates in PHP

答案 4 :(得分:0)

根据用户提供的输入,我很可能会使用类似

的内容
$dateOne = (int)(mktime(0, 0, 0, $month1, $day1, $year1)/86400); //Get the first date as a unix timestamp, then convert to days.
$dateTwo = (int)(mktime(0, 0, 0, $month2, $day2, $year2)/86400); //Get the second date as a unix timestamp, then convert to days.

// Example
//$dateOne = (int)(mktime(0,0,0,12,03,2009)/86400);
//$dateTwo = (int)(mktime(0,0,0,08,19,2011)/86400);

$daysBetween = $dateTwo-$dateOne; //Calculate days between.

echo $daysBetween.'<br />'; //Echo the days between.

for ($i=1; $i=$daysBetween; $i++) { //Loop through every day between, echo the date of that day.
    echo date('Y-m-d', $dateOne*86400+($i*86400)).'<br />';
}

以上代码将为您提供所有日期,包括第一个和最后一个日期。只获得改变之间的那些:

for ($i=1; $i=$daysBetween; $i++) { //Loop through every day between, echo the date of that day.

为:

for ($i=2; $i<=$daysBetween; $i++) { //Loop through every day between, echo the date of that day.

经过测试,效果很好。

注意:第一个日期必须在最后一个日期之前。

干杯 查理