2012-10-29 260 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()); 
    } 
相关问题