php日期计算循环?
我有一个日期计算循环,但我不知道如何编码,实现对输出php日期计算循环?
这里是我当前的代码
//This code is showing all dates from range of date
$year1 = '2011';
$month1 = '10';
$day1 = '17';
$day1 = $day1 + 1;
$year2 = '2012';
$month2 = '03';
$day2 = '17';
$start_date = "$year1-$month1-$day1";
echo "Start Date = $start_date ";
$end_date = "$year2-$month2-$day2";
echo "End Date = $end_date ";
$date = mktime(0,0,0,$month1,$day1,$year1); //Gets Unix timestamp START DATE
$date1 = mktime(0,0,0,$month2,$day2,$year2); //Gets Unix timestamp END DATE
$difference = $date1-$date; //Calcuates Difference
$daysago = floor($difference /60/60/24); //Calculates Days Old
$i = 0;
while ($i <= $daysago +1) {
if ($i != 0) { $date = $date + 86400; }
else { $date = $date - 86400; }
$today = date('Y-m-d',$date);
//echo "$today ";
$yy = date('Y',$date);
$mm = date('m',$date);
$dd = date('d',$date);
echo "$mm-$dd-$yy <br/>";
$i++;
}
上面的代码显示
二○一一年十月十八日 二○一一年十月一十九日 2011年10月20日 2011年10月21日 2011年10月22日 2011年10月23日 2011年10月24日 2011年10月25日 2011年10月26日 2011年10月27日2011年10月28日 2011年10月29日2011年10月30日 2011年10月31日2011年11月1日 2011年11月2日2011年11月3日 -04-2011 11-05-2011 。 。 等 2012年3月17日
,我希望得到特定月份的一天是下面的代码显示输出
11-17-2011
12-17-2011
01-17-2012
02-17-2012
03-17-2012
而不是给你的用户的文本字段的日期,你应该给予他们更多的东西万无一失,像三个下拉菜单,每一个月,日和年:
<select id='month' name='month'>
<option value='01'>Jan</option>
<option value='02'>Feb</option>
etc...
</select>
<select id='day' name='day'>
<option value='01'>01</option>
<option value='02'>02</option>
etc...
你的PHP提交表格:
$month = $_POST['month'];
$day = $_POST['day'];
$year = $_POST['year'];
$no_dates = $POST['no_dates']; //the number of dates
$i = 0;
while ($i < $no_dates){
date = mktime(0,0,0,$month+$i,$day,$year)
print date('Y-m-d', $date)."<br/>";
$i = $i + 1;
}
这一个是非常接近,我想要:)非常感谢你 – idontknowhow 2012-01-17 10:00:44
下面的代码会产生你所提到的输出:
$date1 = strtotime("2011-10-17");
$date2 = strtotime("2012-03-17");
$time = 0;
for($i = 0; ($time = strtotime("+$i month", $date1)) <= $date2; $i++) {
echo date("m-d-Y\n", $time);
}
输出:
10-17-2011
11-17-2011
12-17-2011
01-17-2012
02-17-2012
03-17-2012
如果年份不同,该怎么办? – Dau 2012-01-17 09:23:27
试试这个
<?php
$dateMonthYearArr = array();
$fromDateTS = mktime(0,0,0,10,17,2011);
$toDateTS = mktime(0,0,0,3,17,2012);
for ($currentDateTS = $fromDateTS; $currentDateTS <= $toDateTS; $currentDateTS += (60 * 60 * 24)) {
if (date('d',$currentDateTS)==17){
$dateMonthYearArr[] = date('Y-m-d',$currentDateTS);
}
}
echo '<pre>';
print_r($dateMonthYearArr);
echo '</pre>';
?>
这一个完美的工作非常感谢你:) – idontknowhow 2012-01-17 09:42:03
这不是一个'写我的代码请'有点网站。你将不得不做一些努力来让别人回应代码。 – Jeffrey 2012-01-17 07:58:11
@Jeffrey我的歉意我编辑并添加了我的当前代码 – idontknowhow 2012-01-17 09:06:27
@idontknowhow检查答案 – Dau 2012-01-17 09:24:13