【问题标题】:Javascript function undefinedJavascript函数未定义
【发布时间】:2011-05-21 15:29:50
【问题描述】:
// How many days between two dates
function gDaysBetweenDates(date1, date2) {

    var date1_ms = date1.getTime();
    var date2_ms = date2.getTime();


    return Math.round(Math.abs(date1_ms - date2_ms) / (1000 * 60 * 60 * 24));

}

传递的 Date1 和 date2 是 Date 对象,其值如下:

2010 年 3 月 9 日星期二 00:00:00 GMT+0000 (GMT 标准时间)

我在尝试提取时间时遇到问题,它说 getTime 未定义。当我尝试使用通过以下方式传入的日期创建一个新的日期对象时:

var dateNew = new Date(date1);

我收到错误,日期格式无效。

【问题讨论】:

  • new Date('Tue Mar 09 2010 00:00:00 GMT+0000 (GMT Standard Time)'); 有效。检查传递的值不是undefined(或其他任何东西)(alert它们在gDaysBetweenDates中)
  • 我怀疑这些值实际上是 not Date 实例...
  • 日期字符串是如何生成的?你控制它的格式吗?
  • 它是从二维数组传递过来的。存储在二维数组中的值是一个日期对象。我已尽一切努力将其送至 MS!
  • 我发布的那个日期值来自 alert(date1)

标签: javascript function date undefined


【解决方案1】:

对于最后一个问题,运行date1.constructor 看看date1 是一个什么样的对象。如果它是一个数字,它应该像你写的那样工作。如果它是一个字符串,您必须确保它被格式化为日期。如果它不是数字或字符串,则说明您的类型无效。

另外,请确保检查 date1 不为空。

【讨论】:

    【解决方案2】:

    您似乎有一些类型问题。 Date 构造函数只接受毫秒数字或日期字符串,而不是日期对象。另一个错误听起来像是您认为某些东西是 Date 对象,但实际上不是。 (null?一个字符串?)

    【讨论】:

      猜你喜欢
      • 2017-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多