javascript中的日期比较

时间:2010-12-31 10:12:54

标签: javascript

我的存储日期为dd-mm-yy(21-05-2010),我的系统日期为

var currentTime = new Date();
var month = currentTime.getMonth() + 1;
var day = currentTime.getDate();
var year = currentTime.getFullYear();.

所以我必须比较这两个值,并且必须找出哪一个更大。我需要在Javascript函数中进行比较.so是他们的任何函数,它们会对这两个值进行比较。

4 个答案:

答案 0 :(得分:3)

JavaScript Date对象可以直接用于关系,例如<><===等,还有某些数学操作(例如-)。在幕后发生的事情是Date对象的基础原始“时间”值,即自Epoch(与getTime函数相同的值)以来的毫秒数,在表达式中使用。

所以:

var d1 = new Date(2010, 0, 1); // January 1st, 2010
var d2 = new Date(2010, 1, 1); // February 1st, 2010
display(d1 < d2); // alerts "true"
display(d1 > d2); // alerts "false"
display(d2 - d1); // alerts "2678400000", the difference in milliseconds

Live example

以上几行在功能上与:

相同
var d1 = new Date(2010, 0, 1); // January 1st, 2010
var d2 = new Date(2010, 1, 1); // February 1st, 2010
display(d1.getTime() < d2.getTime()); // alerts "true"
display(d1.getTime() > d2.getTime()); // alerts "false"
display(d2.getTime() - d1.getTime()); // alerts "2678400000", the difference in milliseconds

此信息位于the spec,但您必须交叉引用部分才能找到它。我们从11.8.5(“抽象关系比较算法”)开始,它告诉我们将使用[[ToPrimitive]]操作和“提示”Number来比较值。转到9.1节(“ToPrimitive”),它告诉我们对于Objects,[[ToPrimitive]]只是传递给[[DefaultValue]],传递提示。转到8.12.8(“DefaultValue(提示)”)并告诉我们提示是否为Number且对象是否为valueOf,它将使用{ {1}}。因此,请查看valueOf的{​​{1}}(15.9.5.8),它会返回“此时间值”,这是规范自The Epoch以来毫秒数的说法(阅读介绍Date对象[15.9.1,15.9.1.1]来验证)。方便的是,下一节(15.9.5.9)是valueOf,它说同样的事情。

呼!

(不,我没有做所有这些只是为了回答这个问题;我已经做了一年左右的时间,当我意识到我不知道我做了什么时发生了什么事,我很好奇。)

答案 1 :(得分:1)

date11 = "2018-10-12";
date22 = "2018-12-02";

date1 = new Date(date11);
date2 = new Date(date22);

if(date1>date2){
    alert("date1>date2"); 
}
if(date1<date2){
    alert("date1<date2"); 
}
if(date2==date1){
    alert("date2==date1"); 
}

答案 2 :(得分:0)

var myDate=new Date();
myDate.setFullYear(2010,0,14);
var today = new Date();

if (myDate>today)
  {
  alert("Today is before 14th January 2010");
  }
else
  {
  alert("Today is after 14th January 2010");
  }

如此处所见

http://wap.w3schools.com/js/js_obj_date.asp

答案 3 :(得分:0)

如果您将日期作为比较日期的整数值,这很简单,这可以使用“getTime()”方法完成。此方法返回从1970年1月1日到您给出的日期的毫秒数。请考虑以下

 var fromDate = new Date();//current date
 var fromDateTime = fromDate.getTime();
 var toDate = new Date();
 toDate .setFullYear(2099,0,14);//changing for comparision
 var toDateTime = toDate.getTime();

 //MAIN LOGIC
 if(fromDateTime> toDateTime){
     alert('from time cannot be greater than to date');
     return false;
 }