【问题标题】:Date Issue in Safari, IESafari, IE 中的日期问题
【发布时间】:2014-03-05 00:07:25
【问题描述】:

我正在尝试在我的网站上获取谷歌日历活动,并已成功实施。但是当我检查它的 SAFARI 时,它显示日期为 NaN,月份显示为 undefined。下面是我的代码,我只是粘贴了我的整个代码副本。

我正在编辑我的问题,因为我发现了问题:所以下面是问题,修复就在答案中。

 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;

【问题讨论】:

  • 最好始终使用getFullYear()setFullYear()
  • 您最好只发布与您的问题相关的代码。会不会是日期格式问题?!
  • 查看momentjs.com,它将减轻您对日期操作的一些痛苦。
  • 您发布的代码似乎存在很多问题,这使得甚至很难开始弄清楚这一特定问题。

标签: javascript jquery datetime safari nan


【解决方案1】:

答案如下:

     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 中获取日期,所以我分开它并继续 */

    var parts = startDate.match(/(\d+)/g);
    eventStartDate = new Date(parts[0], parts[1]-1, parts[2])

/** 这是我之前遇到的 Safari 的无效日期问题 eventStartDate = new Date(startDate); **/

【讨论】:

    【解决方案2】:

    从外观上看,你有一个问题。

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

    如果dateLowerlimit 不是空字符串,则todayDate 会在函数范围内设置,但永远不会返回或使用。

    【讨论】:

      猜你喜欢
      • 2012-06-30
      • 2016-10-22
      • 2014-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-07
      • 1970-01-01
      相关资源
      最近更新 更多