2012-10-29 305 views
0

我有一個xml文件,它使用jQuery在SharePoint中檢索。其中一行是如下所示。如何比較xml行中的日期和今天的日期

<z:row ows_Title='Have dinner party with Host' ows_Due_x0020_Date='2012-05-10 00:00:00' ows_MetaInfo='1;#' ows__ModerationStatus='0' ows__Level='1' ows_ID='1' ows_UniqueId='1;#{2A8F277A-C95B-420C-89A9-3B979F95C8F4}' ows_owshiddenversion='3' ows_FSObjType='1;#0' ows_Created='2012-10-25 03:19:35' ows_PermMask='0x7fffffffffffffff' ows_Modified='2012-10-29 00:56:09' ows_FileRef='1;#personal/Inclusions/Lists/Events/1_.000' /> 

現在我想退出「截止日期」列並與今天的日期進行比較。檢索日期沒有問題。但如何比較這兩個日期?爲了比較今天的日期,我用這個。

var k = new Date(); 
    var year = k.getYear(); 
    var month = k.getMonth(); 
    var day = k.getDate(); 
    var fulldate = year+"-"+month+"-"+day 

但它只與日期一起顯示。在xml中,我們也獲得了時間。我不想和時間比較。我想比較只有日期。如何實現它?我想把整個過程放在下面的函數中。

$(xData.responseXML).find("z\\:row").each(function() { 
      //here i want to compare that date column with present date 

}); 

最後我想,xml中的日期小於今天的日期嗎?

+0

什麼您_compare_意思?你想在這兩個日期之間做什麼比較?幾天之間?幾個月?... – elclanrs

+0

我想比較一下,xml中的日期是否小於今天的日期。 – Mihir

+0

你應該使用'.getFullYear()'反正 – Ian

回答

1

事情是這樣的:

function isPastDate(date) { 
    return (new Date(date)).getTime() < (new Date()).getTime(); 
} 
+0

在比較,日期從XML來是給作爲'NaN' – Mihir

+0

'date'必須是一個字符串。確保日期處於預期格式,例如'mm-dd-yyyy'。如果你從XML獲得你的字符串,你可以提取這些值,創建一個數組並相應地加入以創建預期的格式。 – elclanrs

+0

是的..日期格式的問題。它是'YYYY-MM-DD',但我們需要'MM-DD-YYYY'格式 – Mihir

0

終於所需的比較如下圖所示。

function compareDates(passdate) 
    { 
     var splitdate = passdate.split(" "); 
     var splitdate1 = splitdate[0].split("-"); 
     var newdate = splitdate1[1]+"-"+ splitdate1[2]+"-"+splitdate1[0]; 
     return ((Date.parse(newdate)) < (new Date()).getTime()); 
    } 
相關問題