Jquery将日期放入数组中

时间:2014-02-21 21:59:54

标签: jquery

我正在使用json查询谷歌日历,然后使用ajax将结果数据发布到php文件,格式化日期,然后将它们作为以下数组字符串返回:

["2014-03-06"]["2014-05-01","2014-05-02","2014-05-03","2014-05-04","2014-05-05"]["2014-02-21"]

然后我需要得到这个数组的字符串,并以某种方式使它成为这个:

var arDates = [new Date("2014-02-21").valueOf(),new Date("2014-03-06").valueOf(),new Date("2014-05-01").valueOf(),new Date("2014-05-02").valueOf(),new Date("2014-05-03").valueOf(),new Date("2014-05-04").valueOf(),new Date("2014-05-05").valueOf()];

...这样我就可以在jquery datepicker中禁用某些日期。

此问题来自我发布的上一个问题 - jQuery PickMeUp datepicker: disable array of dates

我有什么想法吗?下面的完整代码:(包括我已经尝试过的一些事情。

        $j=jQuery.noConflict(); 
        $j(document).ready(function(){                      
            var eventName = '';
            var gclaData = 'http://www.google.com/calendar/feeds/hello%40freestretch.co.uk/public/basic?orderby=starttime&sortorder=ascending&max-results=8&futureevents=true&alt=json';
            $j.getJSON(gclaData,function(data){
                for(var i = 0; i < data.feed.entry.length; i++){
                    eventName += data.feed.entry[i].summary.$t+"</br>";
                }                                   
                $j.ajax({
                    type: 'POST',
                    url: 'myprocess.php',
                    data: {'dates': eventName},
                    success: function(gcdates) {
                        // returned data is: ["2014-03-06"]["2014-05-01","2014-05-02","2014-05-03","2014-05-04","2014-05-05"]["2014-02-21"]
                        var str = gcdates.replace(/]/g, ",");
                        str = str.replace(/\[/g, "");
                        var lastChar = str.slice(-1);
                        if(lastChar == ',') {
                            str = str.slice(0, -1);
                        }                                   
                        //var match = str.split(',');
                        //console.log(str)
                        /*for (var a in match){
                            var mynewdate = match[a];
                            //mynewdate = 'new Date(' + mynewdate + ').valueOf()';
                            //console.log(mynewdate)
                        }   */
                        //console.log(str);                     
                        var arDates = [new Date("2014-02-21").valueOf(),new Date("2014-03-06").valueOf(),new Date("2014-05-01").valueOf(),new Date("2014-05-02").valueOf(),new Date("2014-05-03").valueOf(),new Date("2014-05-04").valueOf(),new Date("2014-05-05").valueOf()];
                        //console.log(arDates)                                              
                        $j('input#cdate').pickmeup({
                            position  : 'right',                                        
                            mode      : 'range',                            
                            render: function(date) {
                                return {                                    
                                    disabled: arDates.indexOf(date.valueOf()) != -1                             
                                }
                            }                           
                        });                                     
                    }
                });           
            }); 
        }); 

1 个答案:

答案 0 :(得分:1)

为什么需要jquery?一个简单的循环可以解决这个问题

var source = ["2014-03-06","2014-05-01","2014-05-02"];
var dest = [];
for (var i in source) {
  dest.push(new Date(i).valueOf());
}