将日期与字符串j​​avascript中的日期进行比较

时间:2014-01-14 09:24:49

标签: javascript date

我想在javascript中比较几个日期。首先,我得到了数据库。在数据库中它是日期格式,但在json文件中发送之后,我猜它只是一个字符串。

第二个我在javascript中以日期格式得到它。我在javascript中找到了这个脚本:

var todayAEJ = new Date();
var ddAEJ = todayAEJ.getDate();
var mmAEJ = todayAEJ.getMonth()+1; //January is 0!
var yyyyAEJ = todayAEJ.getFullYear();
if(ddAEJ<10){ddAEJ='0'+ddAEJ} if(mmAEJ<10){mmAEJ='0'+mmAEJ} todayAEJ = ddAEJ+'-'+mmAEJ+'-'+yyyyAEJ; 

它和魅力一样。

另一个日期是这样的:13-01-2014

我试着像这样比较:

if(todayAEJ > val.date_End)...

但是当今天的日子大于val.date_End的那天时,它会返回true。因此,当月份不同时,我不能使用此表格。在这种情况下我该怎么办?

4 个答案:

答案 0 :(得分:1)

   otherDate = '13-01-2014';
   myDate=myDate.split("-");
   var newDate=myDate[1]+","+myDate[0]+","+myDate[2];
    otherDateTimeStamp = new Date(newDate).getTime();
    todayAEJTimeStamp = new Date().getTime();
    if(todayAEJTimeStamp > otherDateTimeStammp){
      // your code
    }

您甚至可以使用var newDate=myDate[1]+"/"+myDate[0]+"/"+myDate[2];

使用上面的代码......它将解决您的问题!

... Iinjoy

答案 1 :(得分:0)

如果您可以使用MM-DD-YYYY格式代替DD-MM-YYYY,则可以使用Date.parse

var todayAEJTimeStamp = Date.parse(todayAEJ);//Date parse needs `MM-DD-YYYY` format

//if val.date_End is instance of Date
if(todayAEJTimeStamp > val.date_End.getTime()) {
    //your code here
}

答案 2 :(得分:0)

你必须通过microtime比较它们

var date = new Date("11/21/1987 16:00:00");
var milliseconds = date.getTime(); // Compare this milliseconds

答案 3 :(得分:0)

除了时间戳解决方案之外,我建议在任何情况下使用date.js来使用JS中的Date对象。日期对象在JS中有很奇怪的行为,这个库派上用场。