Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Safari中的日期问题,即_Javascript_Jquery_Datetime_Safari_Nan - Fatal编程技术网

Javascript Safari中的日期问题,即

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;

我正在尝试在我的网站上获取google日历事件,并且已经成功地实现了它。但当我检查SAFARI时,它显示日期为NaN,月份为未定义。下面是我的代码,我刚刚粘贴了我的整个代码副本

我正在编辑我的问题,因为我已经发现了问题:下面是问题,答案中有修复

 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])