【问题标题】:Cannot find function parseInt in object在对象中找不到函数 parseInt
【发布时间】:2026-01-26 18:30:02
【问题描述】:

我正在编写一个 Google Apps 脚本,它应该在某个事件的日期临近时发送警告电子邮件。我在 Google 电子表格中设置了所有事件,并且每个事件都有与之关联的开始和结束日期。

我在尝试从电子表格的单元格中解析日期时遇到了问题。当我获取单元格中日期的值时,它实际上并没有返回 Date 对象,因此我无法直接从从单元格中获得的值创建 Date 。但是,我可以将其转换为字符串,然后在空间标记上拆分字符串以获得年、月和日。现在这就是问题发生的地方;它不会让我对结果变量执行 .parseInt() ,我不知道为什么。到目前为止,我正在制作的用于转换从电子表格获得的日期的函数的代码如下所示:

function convertToDateObject(date)
{
  var months = 
      {
        'Jan' : '01',
        'Feb' : '02',
        'Mar' : '03',
        'Apr' : '04',
        'May' : '05',
        'Jun' : '06',
        'Jul' : '07',
        'Aug' : '08',
        'Sep' : '09',
        'Oct' : '10',
        'Nov' : '11',
        'Dec' : '12'
      };

  var dateArray = date.toString().split(" ");
  var month = dateArray[1].parseInt(); // This is actually in the form of name (e.g. Jan, Feb, etc.), but I know how to change this already 
  var day = dateArray[2].parseInt();
  var year = dateArray[3].parseInt();
}

到目前为止,这就是我所拥有的,因为当我尝试编译时,我收到一条错误消息:“Cannot find function parseInt in object ...”

如果我执行 typeof 月、日或年,它会返回字符串。谁能帮帮我?

【问题讨论】:

    标签: javascript google-apps-script parseint


    【解决方案1】:

    String 没有任何parseInt 方法。 parseInt 是一个全局函数http://www.w3schools.com/jsref/jsref_parseint.asp

      var dateArray = date.toString().split(" ");
      var month = parseInt(dateArray[1], 10); // This is actually in the form of name (e.g. Jan, Feb, etc.), but I know how to change this already 
      var day = parseInt(dateArray[2], 10);
      var year = parseInt(dateArray[3], 10);
    

    【讨论】:

    • 哦,哇,我不敢相信我犯了这么愚蠢的错误......出于某种原因,我认为 parseInt() 是 String 类的成员。除非我忽略了一些非常简单的事情,否则我无法使用 Date 方法解析电子表格返回的日期,因为它们实际上不是 Date 对象。
    • 对不起,我没有完整阅读你的描述,所以我认为日期是一个日期对象。
    • 请使用基数(parseInt 的第二个参数)。在这种情况下,您很可能会得到“看起来”八进制的数字(例如“08”),如果没有它,就会被错误地解析。