js计算两个日期间的所有日期

JavaScript035

js计算两个日期间的所有日期,第1张

最近需要写个小功能,就把这个功能拆成小方法了,觉得日期这玩意儿基本上都能用到,就记录下来,方便自己以后查找。

共有如下几种情况:

1、开始日期小于结束日期

2、两个日期相等,天数为0,之间没有日期

3、开始日期小于结束日期,天数为0,之间没有日期

<b>PS</b>:唯一的坑就是new Date()月份的参数介于 0 到 11 之间。也就是说,如果希望把月设置为 8 月,则参数应该是 7。

getTime() :返回从 1970 年 1 月 1 日至今的毫秒数。

getDate():返回日期,一个月中的某一天

setDate():设置日期,一个月中的某一天

思路:都转化成时间的格式,然后比较。

具体的代码:

function comptime() {

var beginTime = "2010-1-9 8:00:00"

var endTime = "2010-1-13 13:41:52"

var beginTimes = beginTime.substring(0, 10).split('-')

var endTimes = endTime.substring(0, 10).split('-')

beginTime = beginTimes[1] + '-' + beginTimes[2] + '-' + beginTimes[0] + ' ' + beginTime.substring(10, 19)

endTime = endTimes[1] + '-' + endTimes[2] + '-' + endTimes[0] + ' ' + endTime.substring(10, 19)

alert(beginTime + "aaa" + endTime)

alert(Date.parse(endTime))

alert(Date.parse(beginTime))

var a = (Date.parse(endTime) - Date.parse(beginTime)) / 3600 / 1000

if (a <0) {

alert("endTime小!")

} else if (a >0) {

alert("endTime大!")

} else if (a == 0) {

alert("时间相等!")

} else {

return 'exception'

}

}

在js中,可以对两个时间戳进行相减,使用if语句判断结果,从而实现时间戳的比较。具体步骤如下:

1、在test.html文件内,命名为test.html,用于讲解js时间戳怎么比较。

2、在test.html文件内,在js标签内创建一个pan()函数,函数有两个参数,分别st1,st2。

3、在pan()函数内,分别将两个时间使用new Date()转换为时间对象,保存在t1,t2变量中。

4、在pan()函数内,将两个时间对象分别利用getTime()方法转换为时间戳,分别保存在变量tt1,tt2变量中。

5、在pan()函数内,将两个时间戳相减,差值保存在res变量中。

6、在pan()函数内,使用if语句对res进行判断,如果res等于0,提示“两个时间相等”,如果res大于0,提示“t1时间大于t2时间”,如果不符合上面两种情况,则提示“t2时间大于t1时间”。

7、在pan()函数外,创建两个时间变量,并调用pan()函数进行判断。

8、在浏览器打开test.html文件,查看判断的结果。