在JavaScript中比较两个日期

在JavaScript中比较两个日期,javascript,date,Javascript,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. 有导游吗?提前谢谢。试试看- var today = new 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.
有导游吗?提前谢谢。

试试看-

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");

明确检查三年范围

var ld=新日期'2011/10/17 00:00:00 UTC' iftoday.getFullYear-ld.getFullYear<3{ //做点什么 }

这将在无效的日期字符串和其他一些边缘情况下失败。
如果你要做大量的日期计算,我强烈推荐Moment:

你可以用天来计算时间跨度并使用它

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

请参阅此JSFIDLE:

您可以创建一个日期对象并调用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
}
问候,,
凯文已经回答了吗?但我想做的是,如果发布日期是从今天起的3年内,那么执行一些操作。我被困在如何确定发布日期是否在从今天起的3年之内的问题上,这是一个干净而简单的问题。谢谢!