getMonth() 函数已弃用。什么取代了它?无法再运行我的脚本



在过去的一年里,我有一个运行良好的脚本。基本上,如果今天的日期与我的表格上的日期相符,它就会发送提醒电子邮件。为此,我使用了getMonth()函数。但是最近我开始收到来自google的电子邮件,说脚本失败了,调查一下,getMonth()已经被弃用了。取而代之的是什么?我在网上找不到关于它的任何线索。

基本上我一直在做的是在表格中获取日期并将其转换为简单的dd/mm/yyyy格式。工作表和脚本日期函数提取时间,因此此公式将其从等式中删除。

可能有一种方法可以拉出日期并删除不必要的信息,但这个公式对我有效。是否有一个新的'getMonth()'函数?或者我需要重写我的工作方式。

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

这个公式已经失效了。

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替换为您喜欢的日期格式。

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

最新更新