js 日期循环

JavaScript015

js 日期循环,第1张

不用这么麻烦的计算每个月多少天。

看看这个。

//日期增加函数

function dateAdd(strInterval, NumDay, dtDate) {

var dtTmp = new Date(dtDate)

if (isNaN(dtTmp)) dtTmp = new Date()

switch (strInterval) {

case "s":return new Date(Date.parse(dtTmp) + (1000 * NumDay))

case "n":return new Date(Date.parse(dtTmp) + (60000 * NumDay))

case "h":return new Date(Date.parse(dtTmp) + (3600000 * NumDay))

case "d":return new Date(Date.parse(dtTmp) + (86400000 * NumDay))

case "w":return new Date(Date.parse(dtTmp) + ((86400000 * 7) * NumDay))

case "m":return new Date(dtTmp.getFullYear(), (dtTmp.getMonth()) + NumDay, dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds())

case "y":return new Date((dtTmp.getFullYear() + NumDay), dtTmp.getMonth(), dtTmp.getDate(), dtTmp.getHours(), dtTmp.getMinutes(), dtTmp.getSeconds())

}

}

//将日期beginDate加上一天

//strDateList = dateAdd("d", 1, new Date()).toLocaleString()

strDateList = dateAdd("d", 1, '2012/09/28').toLocaleString()

另赠送你一个函数:

//| 求两个时间的天数差 日期格式为 YYYY-MM-dd

function daysBetween(DateOne,DateTwo)

{

var OneMonth = DateOne.substring(5,DateOne.lastIndexOf ('-'))

var OneDay = DateOne.substring(DateOne.length,DateOne.lastIndexOf ('-')+1)

var OneYear = DateOne.substring(0,DateOne.indexOf ('-'))

var TwoMonth = DateTwo.substring(5,DateTwo.lastIndexOf ('-'))

var TwoDay = DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf ('-')+1)

var TwoYear = DateTwo.substring(0,DateTwo.indexOf ('-'))

var cha=((Date.parse(OneMonth+'/'+OneDay+'/'+OneYear)- Date.parse(TwoMonth+'/'+TwoDay+'/'+TwoYear))/86400000)

return Math.abs(cha)}

<script type="text/javascript">

//左右移动(s1,s2根据参数自动识别左右下拉框)

function yidong(s1, s2) {

var a = document.getElementById(s1)

var b = document.getElementById(s2)

var c = a.options

for ( var i = 0 i < c.length i++) {

if (c.options[i].selected) {

b.appendChild(c.options[i])

i--

}

}

}

//转换时间(我这里用的格式是:2013/09 ,可以自己修改想要的)

function getTime() {

document.getElementById("left").length=0 //删除下拉选项

document.getElementById("right").length=0

var time = document.getElementById("times").value //得到输入框的时间

var d = new Date(time + "/01")

var y = d.getFullYear()

var m = d.getMonth() + 1

var t1 = Date.parse(m + "/28/" + y)

var t2 = Date.parse(m + 1 + "/1/" + y)

thisMonthDays = 27 + (t2 - t1) / (60 * 60 * 24 * 1000) //当月总共的天数

// alert(m + "月份共有" + thisMonthDays + "天")

//循环当月天数

for ( var i = 1 i <= thisMonthDays i++) {

var date = new Date(time + "/" + i)

createOptions(date) //创建一个下拉列表元素

}

}

//创建下拉元素

function createOptions(dates) {

var xingqi = [ "星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" ]

var year = dates.getFullYear() //得到年份 

var month = dates.getMonth() + 1//0-11 月

var date = dates.getDate() //日

var day = dates.getDay() //0-6   0是星期七   6是星期六

var times = year + "年" + month + "月" + (date<10?"0"+date:date) + "日 " + xingqi[day]

//创建下拉

var ops = document.createElement("option")

ops.appendChild(document.createTextNode(times)) //添加要显示的文本

document.getElementById("left").appendChild(ops) //添加到左边下拉框

}

</script>

<body>

输入时间:

<input type="text" name="times" id="times" value="2013/09">

<input type="button" value="确定" onclick="getTime()">

<br>

<br>

<span> <select id="left" size="10" multiple="multiple">

</select> </span>

<span>

<input type="button" value=">>>" onclick="yidong('left','right')" />

<input type="button" value="<<<" onclick="yidong('right','left')" />

</span>

<span> <select id="right" size="10" multiple="multiple">

</select> </span>

</body>