在PHP中回显给定值之间的每个日期

时间:2011-02-27 03:43:28

标签: php

我有一个表单,允许用户以dd / mm / yyyy格式输入日期。

我希望能够做到的是echo从现在(包括今天)到输入日期之间的每个日期。{/ p>

有人可以帮帮我吗?我不太清楚如何去做。

例如,如果有人要进入12/12/2011并且今天的日期是10/12/2011,那么它将回应以下内容:

10/12/2011  
11/12/2011  
12/12/2011

任何帮助都会很棒。

4 个答案:

答案 0 :(得分:4)

$start_date = time ();  // today
$end_date = strtotime ( .. your input date as string ... );
while ( $start_date + 86400 < $end_date ) {
  echo date ('m/d/Y', $start_date );
  $start_date += 86400; // full day
}

答案 1 :(得分:0)

here

中挑选
<?php
$fromDate = ’01/01/2009′;
$toDate = ’01/10/2009′;

$dateMonthYearArr = array();
$fromDateTS = strtotime($fromDate);
$toDateTS = strtotime($toDate);

for ($currentDateTS = $fromDateTS; $currentDateTS <= $toDateTS; $currentDateTS += (60 * 60 * 24)) {
// use date() and $currentDateTS to format the dates in between
$currentDateStr = date(“Y-m-d”,$currentDateTS);
$dateMonthYearArr[] = $currentDateStr;
//print $currentDateStr.”<br />”;
}

echo  “<pre>”;
print_r($dateMonthYearArr);
echo “</pre>”;
?>

答案 2 :(得分:0)

//Assume dates are properly formatted.
$startDate;
$endDate;

while($startDate < $endDate){  
     $startDate = date("m/d/Y", strtotime("+1 day", strtotime($startDate))); 
     echo $startDate;

}

答案 3 :(得分:0)

首先,您使用的是DD-MM-YYYY,请确保您的分隔符是 - 这样您就不会将它们转换为时间戳。以下是当前格式等的示例。

你应该有更多的检查,以确保你没有得到无限循环:)。

$start_date = "10/12/2011";
$end_date = "12/12/2011";
print_r(dates_between($start_date, $end_date));

function dates_between($start_date, $end_date)
{
    $date = array($start_date);
    $start_date = str_replace('/', '-', $start_date);
    $end_date = str_replace('/', '-', $end_date);

    $current_date = $start_date;
    while($current_date != $end_date)
    {
        $current_date = date("d-m-Y", strtotime("+1 day", strtotime($current_date)));
        $date[] = str_replace('-', '/', $current_date);
    }
    return $date;
}