<!
DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
>
<
HTML
>
<
HEAD
>
<
TITLE
>
作者:风中叶
</
TITLE
>
<
META
NAME
="Generator"
CONTENT
="EditPlus"
>
<
META
NAME
="Author"
CONTENT
=""
>
<
META
NAME
="Keywords"
CONTENT
=""
>
<
META
NAME
="Description"
CONTENT
=""
>


<
SCRIPT
LANGUAGE
="JavaScript"
>
//将string转换为Date
//str必须满足如下格式: 2008-04-29
function convertString2Date(str)
{
//用户split分隔出数组,将包含3个元素:年,月,日
var splitArray = str.split("-");
// 用年,月,日构造日期对象
// splitArray[0]-> year, splitArray[1]-> month, splitArray[2]->day
// 这时要注意月份是从0开始的
var date = new Date(splitArray[0], splitArray[1] - 1, splitArray[2]);
return date;
}
// 得到date1和date2之间的间隔
// date2要比date1大
// date要满足如下格式: 2008-04-29
//参数date1和date2类型应该是String或Date
// 确保两种类型没有问题
function getIntervalBetweenTwoDates(date1, date2)
{
var realDate1 = date1;
var realDate2 = date2;
// 如果date1是Date类型就不用转换
if(!(date1 instanceof Date))
{
realDate1 = convertString2Date(date1);
}
// 如果date2是Date类型就不用转换
if(!(date2 instanceof Date))
{
realDate2 = convertString2Date(date2);
}
//得到绝对值,(realDate2.getTime() - realDate1.getTime())返回的是毫秒所以要先除1000
var interval = Math.abs((realDate2.getTime() - realDate1.getTime()))/(1000 * 60 * 60 * 24);
return interval;
}
function listAllDatesBetweenTwoDates()
{
var date1 = document.getElementById("start").value;
var date2 = document.getElementById("end").value;
var target = document.getElementById("result");
var interval = getIntervalBetweenTwoDates(date1,date2);
// 转换string为Date
date1 = convertString2Date(date1);
var year = date1.getFullYear();
var month = date1.getMonth();
var date = date1.getDate();
--date;
for(var i = 0 ; i <= interval ; ++i)
{
++date;
var theDate = new Date(year, month, date);
var tempYear = theDate.getFullYear();
var tempMonth = theDate.getMonth() + 1;
var tempDate = theDate.getDate();
var day = theDate.getDay();
var working = null;
if(0 == day || 6 == day) // non-working day
{
working = "non-working day";
}
else
{
working = "working day";
}
var theResult = tempYear + "-" + tempMonth + "-" + tempDate + " is " + working;
var div = document.createElement("div");
div.innerHTML = theResult;
target.appendChild(div);
}
}
</
SCRIPT
>
</
HEAD
>
<
BODY
>
start date:
<
input
type
="text"
length
="20"
id
="start"
><
br
>
end date:
<
input
type
="text"
length
="20"
id
="end"
><
br
>
<
input
type
="button"
onclick
="listAllDatesBetweenTwoDates()"
value
="result"
>
<
div
id
="result"
></
div
>
</
BODY
>
</
HTML
>
本文提供了一段JavaScript代码示例,展示了如何实现字符串到日期的转换、计算两个日期之间的间隔天数,以及列出两个指定日期间的每一天及其工作日属性。通过具体的HTML页面实现,便于理解和应用。

8172

被折叠的 条评论
为什么被折叠?



