比较JavaScript中的两个日期

时间:2014-03-26 07:22:12

标签: javascript date

我目前正在尝试将launch_date与今天的日期进行比较。让我们说如果launch_date是从今天开始的3年之内,它应该执行某些操作,但我只是设法提出了部分代码:

var today = new Date();
var launch_date = 2011/10/17 00:00:00 UTC;
//if today's date minus launch_date is within 3 years, then do something.

任何指南?提前谢谢。

4 个答案:

答案 0 :(得分:0)

尝试 -

var today = new Date();
var launch_date = new Date("2011/10/17 00:00:00 UTC");
var diff = today.getYear() - launch_date.getYear();

if(diff <=3 )
    alert("yes");
else
    alert("no");

jsFiddle

答案 1 :(得分:0)

明确检查三年范围

var ld = new Date('2011/10/17 00:00:00 UTC') if(today.getFullYear() - ld.getFullYear() < 3) { //do something }

这将在无效的日期字符串和可能的其他边缘情况下失败。 如果您要进行大量日期计算,我强烈建议时刻http://momentjs.com/

答案 2 :(得分:0)

您总是可以计算出以天为单位的时间跨度并使用它。

var getDays = function(startDate, endDate){
   var ONE_DAY = 1000 * 60 * 60 * 24;
   var difference = endDate.getTime() - startDate.getTime();
   return Math.round(difference / ONE_DAY);
}

见这个JsFiddle:http://jsfiddle.net/bj4Dq/1/

答案 3 :(得分:0)

您可以创建一个Date对象并调用getTime()方法(自1970-01-01以来返回毫秒数)。使用以下行之一:

var yourDate = new Date(dateString)  // format  yyyy-mm-dd hh:mm:ss
var yourDate = new Date(year, month, day, hours, minutes, seconds, milliseconds)

在if语句之后使用这个条件:

var edgeDate =  // new Date(dateString);
if ( (today.getTime () - yourDate.getTime ()) >= edgeDate.getTime() ){
    // do something
}

此致 凯文