我有一个表单,允许用户以dd / mm / yyyy格式输入日期。
我希望能够做到的是echo
从现在(包括今天)到输入日期之间的每个日期。{/ p>
有人可以帮帮我吗?我不太清楚如何去做。
例如,如果有人要进入12/12/2011并且今天的日期是10/12/2011,那么它将回应以下内容:
10/12/2011
11/12/2011
12/12/2011
任何帮助都会很棒。
答案 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;
}