2014-01-14 81 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中有非常奇怪的行爲,並且這個庫派上用場。