js关于日期比较大小

JavaScript021

js关于日期比较大小,第1张

可以用用Date.parse()方法

var d1 = Date.parse('2014-09-28 19:00:00'),

    d2 = Date.parse('2014-09-28 2:00:00')

console.log(d1 > d2)

思路:

先都转换成日期。然后再用毫秒数进行比较。

下面是简单的例子:

function tab(date1,date2){

    var oDate1 = new Date(date1)

    var oDate2 = new Date(date2)

    if(oDate1.getTime() > oDate2.getTime()){

        console.log('第一个大')

    } else {

        console.log('第二个大')

    }

}

tab('2015-10-10','2015-10-11')

你好,

首先来分析一个问题,两个日期是什么格式的?假设是字符串格式:

可能是:2018/04/20,也可能是:2018/04/20 12:00:00

那接下来分情况讨论。

首先看看不含时间部分的日期格式计算:

var aDate = new Date('2018/04/23') // 通过日期字符串,初始化第一个日期对象

var bDate = new Date('2018/04/25') // 同上,初始化第二个日期对象

var aDay = 24 * 60 * 60 * 1000 // 完整一天有24小时,将小时换算成毫秒时间戳

var diffDay = (bDate - aDate) / aDay // 计算间隔天数(注意日期隐式转换)

console.log(diffDay) // 2,23日-25日间隔2天

然后再来看看包含时间部分的日期格式计算:

var aDate = new Date('2018/04/23')

var bDate = new Date('2018/04/25 12:00:00') // 包含时间的日期字符串

var aDay = 24 * 60 * 60 * 1000

var diffDay = (bDate - aDate) / aDay

console.log(diffDay) // 2.5,自然计算的结果

console.log(Math.floor(diffDay)) // 2,根据个人情况向下取整,整数天

console.log(Math.ceil(diffDay)) // 3,根据个人情况向上取整,整数天

希望是你想要的结果,如有疑问请追问。