2014-01-14 55 views
0

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

第二我在日期格式在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。所以当这个月不同时,我不能使用这种形式。在这种情况下我能做些什么?

+0

在javascript中使用时间戳 – Anubhav

回答

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];

使用上面的代码...它会解决你的问题roblem!

Iinjoy ...

+0

它不起作用。我认为这是因为我的custorm日期是这种格式:dd-mm-yy而不是mm-dd-yy – Biribu

+0

@Biribu答复编辑 – Anubhav

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 
} 
+0

我不行。我从服务器收到日期,它的格式为 – Biribu

+0

好的,val.date_End是什么?串?数据对象? – Pinal

+0

它是一个来自json文件的字符串。我有一个json文件,我读取每一行并将其保存在val中,然后读取每个属性值。 – Biribu

0

您必须将它们通过microtime中比较

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

除了时间戳的解决方案,我建议您要在JS Date对象播放任何情况下都使用date.js。日期对象在JS中有非常奇怪的行为,并且这个库派上用场。