2012-10-11 45 views
2

我无法解析从Google日历Feed中提取的事件日期。下面是我的工作相关的代码片段:谷歌日期解析

jQuery(function(){ 

     jQuery.getJSON("https://www.google.com/calendar/feeds/(my feed URL...)", function(data){ 


     function lpad(str, pad_string, length) { 
      var str = new String(str); 
      while (str.length < length) 
       str = pad_string + str; 
      return str; 
     }; 

     jQuery.each(data.feed.entry, function(i, item){ 
      if(i == 0) { 
       jQuery("#events li").first().hide(); 
      }; 
      var event_url = jQuery.trim(item.content.$t); 
      var event_header = item.title.$t; 
      if(event_url.length > 0) { 
        event_title = "<a href='" + event_url + "'>" + event_header + "</a>"; 
       }; 
       // Format the date string 

       var d = item.gd$when[0].startTime + ' - ' + item.gd$when[0].endTime; 
       var d_string = d; 


      // Render the event 
      jQuery("#events li").last().before(
       "<li><strong>" 
       + event_title 
       + "</strong><br/>Date: " 
       + d_string 
       + "</a></li>" 
      ); 
     }); 
    }); 
}); 

一切正常 - 除了我试图解析日期。日期显示为:

Date: 2012-10-11T10:00:00.000-05:00 - 2012-10-11T12:00:00.000-05:00 

我知道我需要创建一个新的Date对象:

d=new Date(item.gd$when[0].startTime); 

但后来我尝试调试:

alert('Month: ' + d.getMonth()); 

我收到:

Month: NaN 

我明显失去了一些东西 - 埠我不确定是什么。

回答

1

尝试这样的:

item.gd$when[0].startTime = item.gd$when[0].startTime.replace('Date: ', ''); 
item.gd$when[0].startTime = item.gd$when[0].startTime.split(' - '); 

var firstDate = item.gd$when[0].startTime[0]; 
var secondDate = item.gd$when[0].startTime[1]; 

var _firstDate = new Date(firstDate); 
var _secondDate = new Date(secondDate); 

alert(_firstDate.getMonth()); 
alert(_secondDate.getMonth()); 
+0

仍然出现NaN的 –

+0

正常工作与我... – 2012-10-11 15:24:09

+0

没有不能得到它的工作。你能发布完整的代码吗?仍然看到'NaN'。你使用IE吗?铬? –