我正在使用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
}
}
});
}
});
});
});
答案 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());
}