var date1 = new Date("2004/03/05");
var date2 = new Date("2004/02/25");
for (var i=0;i<=(date1-date2)/1000/60/60/24;i++){
var date = new Date(date2.getFullYear()+"/"+(date2.getMonth()+1)+"/"+(date2.getDate()+i));
document.write(date.getFullYear()+"/"+(date.getMonth()+1)+"/"+date.getDate()+"<br>");
}大体上这样,自己改一下:
1、"-"替换成"/"
2、2004-3-5 解释成2004-03-05
3、判断date1和date2的大小
var date2 = new Date("2004/02/25");
for (var i=0;i<=(date1-date2)/1000/60/60/24;i++){
var date = new Date(date2.getFullYear()+"/"+(date2.getMonth()+1)+"/"+(date2.getDate()+i));
document.write(date.getFullYear()+"/"+(date.getMonth()+1)+"/"+date.getDate()+"<br>");
}大体上这样,自己改一下:
1、"-"替换成"/"
2、2004-3-5 解释成2004-03-05
3、判断date1和date2的大小
解决方案 »
- 请教:js写的特效在页面中有冲突的问题
- onpropertychange 事件和alert的问题
- 简单的JS送分题。
- javascript基础差,请帮看一下下面的代码那里有问题。
- 急!急!急!怎样实现双重按钮添加和删除表中的行?请教各位大虾们!!
- 各位老大,帮偶看看这样的代码应该怎样写?● ● 急急急……
- parent.document小问题.
- 如何用javascript,换另外框架上的图片
- 请问关于split()的问题
- vue+cordova为什么用router显示空白页
- 高手来看看%%%%%%%%%%%%%%
- showModalDialog()打开的窗口中的页面总是用IE的缓存,页面修改后要重启IE才能改变,怎么办?
8 Name DateCompare
Purpose 计算两个字符(YYYY-MM-DD)日期相隔天数 Param asStartDate 起始日期
asEndDate 终止日期 Return 字符串
*****************************************************************/
function DateCompare(asStartDate,asEndDate){
var miStart = Date.parse(asStartDate.replace(/\-/g, '/'));
var miEnd = Date.parse(asEndDate.replace(/\-/g, '/'));
return (miEnd-miStart)/(1000 * 24 * 3600);
}/*****************************************************************
10 Name addDays
Purpose 日期和天数相加等于第二个日期 Param date YYYY-MM-DD格式的字符串
days 天数 Return Date
*****************************************************************/
function addDays(date , days){
var date = new Date(Date.parse(date.replace(/\-/g, '/')));
return date.addDays(days) ;
} 以下是实现方法,需要调用上面的两个方法:
/****************************************************************
*
* Return Array 以数组返回得到的所有日期
****************************************************************/
function getDateArray(startDate , endDate){
var array = new Array() ;
array.push(addDays(startDate , 0)); // 保存起始日期
var interDays = DateCompare(startDate , endDate); //取两日期的间隔天数
for(int i = 1 ; i <= interDays ; i++){
var theDate = addDays(startDate , i);
array.push(theDate) ;
}
return array;
}
5 Name addDays
Purpose 计算日期加上天数后的日期
Param days 天数 Return Date
*****************************************************************/
Date.prototype.addDays = function(days){
var interTimes = days * 24 * 60 * 60 * 1000 ;
return new Date(Date.parse(this) + interTimes) ;
}
<head>
<title> New Document </title>
</head>
<body bgcolor="#FFFFFF">
2004-02-25<input type="checkbox" name="ch" value="2004-02-25">
2004-03-25<input type="checkbox" name="ch" value="2004-03-25">
2004-03-05<input type="checkbox" name="ch" value="2004-03-05">
2004-04-05<input type="checkbox" name="ch" value="2004-04-05">
<button onclick="kiss()">gooooooo</button>
<div id="div"></div>
<script language="JavaScript">
<!--
function kiss()
{
var dates = getCheckboxValue();
if(dates.length!=2)
{
alert("你必须选择两个日期");
return;
}
comp_date(dates[0],dates[1]);
}function getCheckboxValue()
{
var str="";
for(var i=0;i<ch.length;i++)
{
if(ch[i].checked)
str += ch[i].value+",";
}
str=str.substring(0,str.length-1);
str=str.split(",");
return str;
}function comp_date(date1,date2)
{
var reg_ymd=/^([\d]{4})-([\d]{1,2})-([\d]{1,2})$/;//校验日期的正则
var year,mon,day,arr_dt1,arr_dt2,dt1,dt2;
if (reg_ymd.test(date1)==true && reg_ymd.test(date2)==true)
{
arr_dt1=date1.match(reg_ymd);
arr_dt2=date2.match(reg_ymd);
dt1=new Date(arr_dt1[1]+"/"+arr_dt1[2]+"/"+arr_dt1[3]);
dt2=new Date(arr_dt2[1]+"/"+arr_dt2[2]+"/"+arr_dt2[3]);
boolDate(dt1,dt2);
}
}function boolDate(dt1,dt2)
{
var d,num,dni,str="";
if(dt1>dt2)
{
num = dt1-dt2;
dni = Math.floor(num / (1000 * 60 * 60 * 24));
for(var i=1;i<dni;i++)
{
d = new Date(dt2.getYear()+"/"+(dt2.getMonth()+1)+"/"+(dt2.getDate()+i));
str += d.getYear()+"-"+(d.getMonth()+1)+"-"+d.getDate()+"<br>";
}
}
else
{
num = dt2-dt1;
dni = Math.floor(num / (1000 * 60 * 60 * 24));
for(var i=1;i<dni;i++)
{
d = new Date(dt1.getYear()+"/"+(dt1.getMonth()+1)+"/"+(dt1.getDate()+i));
str += d.getYear()+"-"+(d.getMonth()+1)+"-"+d.getDate()+"<br>";
}
}
div.innerHTML = str;
}
//-->
</script>
</body>
</html>
<html>
<head>
<title> New Document </title>
</head>
<body bgcolor="#FFFFFF">
2004-02-25<input type="checkbox" name="ch" value="2004-02-25">
2004-03-25<input type="checkbox" name="ch" value="2004-03-25">
2004-03-05<input type="checkbox" name="ch" value="2004-03-05">
2004-04-05<input type="checkbox" name="ch" value="2004-04-05">
<button onclick="kiss()">gooooooo</button>
<div id="div"></div>
<script language="JavaScript">
<!--
function kiss()
{
var dates = getCheckboxValue();
if(dates.length!=2)
{
alert("你必须选择两个日期");
return;
}
comp_date(dates[0],dates[1]);
}function getCheckboxValue()
{
var str="";
for(var i=0;i<ch.length;i++)
{
if(ch[i].checked)
str += ch[i].value+",";
}
str=str.substring(0,str.length-1);
str=str.split(",");
return str;
}function comp_date(date1,date2)
{
var reg_ymd=/^([\d]{4})-([\d]{1,2})-([\d]{1,2})$/;//校验日期的正则
var year,mon,day,arr_dt1,arr_dt2,dt1,dt2;
if (reg_ymd.test(date1)==true && reg_ymd.test(date2)==true)
{
arr_dt1=date1.match(reg_ymd);
arr_dt2=date2.match(reg_ymd);
dt1=new Date(arr_dt1[1]+"/"+arr_dt1[2]+"/"+arr_dt1[3]);
dt2=new Date(arr_dt2[1]+"/"+arr_dt2[2]+"/"+arr_dt2[3]);
if(dt1>dt2)
disDate(dt1,dt2);
else
disDate(dt2,dt1);
}
}function disDate(bigDate,smallDate)
{
var d;
var str="";
var num = bigDate-smallDate;
var dni = Math.floor(num / (1000 * 60 * 60 * 24));
for(var i=1;i<dni;i++)
{
d = new Date(smallDate.getYear()+"/"+(smallDate.getMonth()+1)+"/"+(smallDate.getDate()+i));
str += d.getYear()+"-"+(d.getMonth()+1)+"-"+d.getDate()+"<br>";
}
div.innerHTML = str;
}
//-->
</script>
</body>
</html>