javascript getMonth()函数已弃用,用什么替代它?无法再运行脚本

kx1ctssn  于 2022-12-28  发布在  Java
关注(0)|答案(2)|浏览(330)

在过去的一年里,我有一个脚本运行得很好。基本上,如果今天的日期与我工作表中的日期匹配,它会发送一封提醒电子邮件。为了做到这一点,我使用了getMonth()函数。但最近我开始收到来自谷歌的电子邮件,说这个脚本失败了,调查了一下,getMonth()已经被弃用了。是什么取代了它?我在网上找不到任何关于它的线索。
基本上,我一直在做的是在工作表中获取一个日期,并将其转换为简单的dd/mm/yyyy格式。工作表和脚本的日期函数提取时间,所以这个公式将其从公式中删除。
可能有一个解决办法,拉一个日期,并删除不重要的信息,但这个公式对我很有效。有一个新的'getMonth()'函数吗?或者我有一个重写我如何完全做的事情。

firstDay= sheet.getRange(rowCount,2).getValue();
firstDay = (firstDay.getMonth()+1) + "/" + firstDay.getDate() + "/" + firstDay.getFullYear();

这是一个不再有效的公式。

eqqqjvef

eqqqjvef1#

Date.getMonth()方法 * 尚未 * 被弃用。
要在Google Apps Script中将Date对象转换为文本字符串,并注意正确的时区偏移量,请使用Utilities.formatDate(),如下所示:

const date = sheet.getRange(rowCount, 2).getValue();
  if (Object.prototype.toString.call(date) !== '[object Date]') {
    throw new Error(`The value '${date}' in row  ${rowCount} is not a date.`);
  }
  const timezone = sheet.getParent().getSpreadsheetTimeZone();
  const firstDay = Utilities.formatDate(value, timezone, 'yyyy-MM-dd');

yyyy-MM-dd替换为首选日期格式。

flvlnr44

flvlnr442#

function getDateString() {
  const ss = SpreadsheetApp.getActive();
  const sh = ss.getSheetByName("Sheet0");
  sh.getRange("A1").setValue(new Date());
  Logger.log(sh.getRange("A1").setNumberFormat("dd/MM/yyyy").getDisplayValue());
}

Execution log
10:30:45 AM Notice  Execution started
10:30:46 AM Info    27/12/2022
10:30:47 AM Notice  Execution completed

相关问题