Javascript Safari中的日期问题,即
我正在尝试在我的网站上获取google日历事件,并且已经成功地实现了它。但当我检查SAFARI时,它显示日期为NaN,月份为未定义。下面是我的代码,我刚刚粘贴了我的整个代码副本 我正在编辑我的问题,因为我已经发现了问题:下面是问题,答案中有修复Javascript Safari中的日期问题,即,javascript,jquery,datetime,safari,nan,Javascript,Jquery,Datetime,Safari,Nan,我正在尝试在我的网站上获取google日历事件,并且已经成功地实现了它。但当我检查SAFARI时,它显示日期为NaN,月份为未定义。下面是我的代码,我刚刚粘贴了我的整个代码副本 我正在编辑我的问题,因为我已经发现了问题:下面是问题,答案中有修复 for (var i = 0; i < eventArray.length; i++) { startDate = eventArray[i].start.date || eventArray[i].start.dateTime;
for (var i = 0; i < eventArray.length; i++) {
startDate = eventArray[i].start.date || eventArray[i].start.dateTime;
endDate = eventArray[i].end.date || eventArray[i].end.dateTime;
summary = eventArray[i].summary;
description = eventArray[i].description;
htmlLink = eventArray[i].htmlLink;
event_location = eventArray[i].location;
eventStartDate = new Date(startDate);
eventEndDate = new Date(endDate);
var isExist=false;
for(变量i=0;i
从外观上看,这里有一个问题
function getDateLowerLimit() {
var todayDate;
if (dateLowerlimit == "") {
todayDate = new Date();
dateLowerlimit = todayDate.getFullYear() + "-" + (todayDate.getMonth() < 10 ? '0' : '') + (todayDate.getMonth() + 1) + "-" + (todayDate.getDate() < 10 ? '0' : '') + todayDate.getDate() + "T00:00:00+00:00"
} else {
todayDate = new Date(dateLowerlimit)
}
}
函数getDateLowerLimit(){
今天的风险值;
如果(dateLowerlimit==“”){
todayDate=新日期();
dateLowerlimit=todayDate.getFullYear()+“-”+(todayDate.getMonth()<10?'0':“”)+(todayDate.getMonth()+1)+“-”+(todayDate.getDate()<10?'0':“”)+todayDate.getDate()+“T00:00:00+00:00”
}否则{
todayDate=新日期(DateLowerLit)
}
}
如果dateLowerlimit
不是空字符串,则在函数范围内设置todayDate
,但它从未返回或使用。以下是答案:
for (var i = 0; i < eventArray.length; i++) {
startDate = eventArray[i].start.date || eventArray[i].start.dateTime;
endDate = eventArray[i].end.date || eventArray[i].end.dateTime;
summary = eventArray[i].summary;
description = eventArray[i].description;
htmlLink = eventArray[i].htmlLink;
event_location = eventArray[i].location;
/**这里是Safari的无效日期问题,我面临的是早期事件startDate=new date(startDate);***/始终使用
getFullYear()
和setFullYear()是个好主意
您最好只发布与您的问题相关的代码。这可能是日期格式问题吗?!调查一下,这将减轻您在日期操纵方面的一些痛苦。您发布的代码似乎存在许多问题,这使得您甚至很难开始了解这一特定问题。
var parts = startDate.match(/(\d+)/g);
eventStartDate = new Date(parts[0], parts[1]-1, parts[2])