function dateRange($d1,$d2)
{
$timestamp1=strtotime($d1);
$timestamp2=strtotime($d2);
if($timestamp1==$timestamp2) return;
if($timestamp1>$timestamp2) return '日期错误';
$n=round(($timestamp2-$timestamp1)/3600/24);
$y=date('Y',$timestamp1);
$m=date('m',$timestamp1);
$d=date('d',$timestamp1);
$arr=array();
for($i=0;$i<$n+1;$i++)
{
$arr[]=date('Y-m-d',mktime(0,0,0,$m,$d+$i,$y));
}
return $arr;
}
print_r(dateRange('2005-11-12','2006-01-12'));
解决方案 »
- 关于截取以逗号隔开的字符串位数
- php的图片处理问题
- Warning: mail() [function.mail]: Failed to Receive in 用的是下载的本地SMTP服务器
- 有没有做php与xml合用生成的PDF的图朋友啊~~
- 急解:如何将Mysql表中一字段从varchar变成text类型
- 求smarty html_select_date 例子
- php问题
- 怎样对表格内容进行修改、删除?
- 谁有libmysql10-3.23.56-1.4mdk.i586.rpm文件,急用!!!
- 如何得到浏览器分辨率?
- 英文程序不能用中文注册,并且数据库中也是乱码!
- 关于$_SERVER['SERVER_NAME']问题
$startDate = '2005-11-12';
$endDate = $startDate ;
while($endDate != '2006-01-12')
{
echo $endDate.'<br/>';
$endDate = date('Y-m-d',strtotime($endDate.' +1 day'));
}
echo $endDate.'<br/>';
function listD($start, $end){
if (!$start || !$end || ($start = strtotime($start))>($end = strtotime($end)))return false; $str = array(date('Y-m-d', $start));
$one = 60*60*24;
while($start < $end){
$str[] = date('Y-m-d', $start+=$one);
}
return $str;
}print_r( listD('2005-11-12', '2006-01-12') );
最简单,每次增加一天 3600*24