if (startTime == null || endTime == null || startTime== ""
|| endTime == "") {
alert("请选择起止时间")
return false
}
var regS = new RegExp("-", "gi")
var date1 = startTime.replace(regS, "/")
var date2 = endTime.replace(regS, "/")
var st = new Date(Date.parse(date1))
var et = new Date(Date.parse(date2))
if (et <st) {
alert("结束时间要大于开始时间!")
return false
}
var diff = et.getTime() - st.getTime()
var days = Math.floor(diff / (1000 * 60 * 60 * 24))
if (days >= 7) {
alert("时间跨度不能超过7天")
return false
}
return true
}
这上面的代码可以解决你要的开始时间不能小于结束时间的问题,判断跨月的js如下:
function check_sub()
{
var begin_ = document.getElementById('startTime').value
var end_ = document.getElementById('endTime').value
var st=startTime.split("-") //将时间分成数组然后比较年、月份的大小
var et=endTime.split("-")
if(st[0]!=et[0]){
alert("抱歉,暂时不提供跨年查询")
return false
}else{
if(st[1]!=et[1]){
alert("抱歉,暂时不提供跨月查询")
return false
}
}
}
这上面的可以解决跨月的判断,你看下,应该就没问题了
var d1 = new Date(2014, 11, 4)var d2 = new Date(2014, 10, 29)
alert( (d1.getTime() - d2.getTime()) / 60000 /24/60)
这个计算本身在是没有问题的,不管是否跨月。
看你的array的值是否正常, 看 rowNumber.value 是否正确引用到你期望的数字。
若你用的日期是Data类型,代码如下:假如第一个日期是d1,第二个是d2
var d3 = d1.getTime() - d2.getTime()
var d4 = 1000*3600*24*30(一个月按30天计算)
然后判断d3与d4的大小即可,不知道是不是你要的答案,希望可以帮到你