2

我在解析从 Google 日历提要中提取的活动日期时遇到问题。这是我正在使用的相关代码片段:

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

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

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

但后来我尝试调试:

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

我收到:

Month: NaN

我显然错过了一些东西——但我不确定是什么。

4

1 回答 1

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());
于 2012-10-11T14:06:11.267 回答