Javascript TypeError:无法调用方法";getDay";未定义的
我跳进了一个已经工作了一年多的脚本,现在它已经开始发布TypeError:cannotcallmethod“getDay”of undefined 我认为这是导致问题的功能-但不确定如何解决:Javascript TypeError:无法调用方法";getDay";未定义的,javascript,Javascript,我跳进了一个已经工作了一年多的脚本,现在它已经开始发布TypeError:cannotcallmethod“getDay”of undefined 我认为这是导致问题的功能-但不确定如何解决: function businessDaysBetween(startDate, endDate) { var dayDiff = endDate.getDay() - startDate.getDay(); if (dayDiff < 0) { dayDiff = 5 + dayD
function businessDaysBetween(startDate, endDate) {
var dayDiff = endDate.getDay() - startDate.getDay();
if (dayDiff < 0) {
dayDiff = 5 + dayDiff;
}
return Math.floor((((endDate.getTime() - startDate.getTime())/1000/60/60/24/7) * 5) + dayDiff);
}
函数businessDaysBetween(开始日期、结束日期){
var dayDiff=endDate.getDay()-startDate.getDay();
if(dayDiff<0){
dayDiff=5+dayDiff;
}
返回Math.floor(((endDate.getTime()-startDate.getTime())/1000/60/60/24/7)*5)+dayDiff);
}
函数sendRememberEmail(){
试一试{
//打开谷歌电子表格“新员工-通知”,并检索“新员工”表
var电子表格=SpreadsheetApp.openById(“已识别”);
var sheet=电子表格.getSheetByName(“新员工”);
}
捕获(e)
{
msgBox(e.message);
}
var rows=sheet.getLastRow();
var currentDate=新日期();
//遍历行
对于(变量i=2;i=3){
var noOfReminders=sheet.getRange(i,14).getValue();
//根据收到的提醒数量发送适当的电子邮件
if(noOfReminders==0){
第一次提醒(i);
}
else if(noOfReminders==1){
第二(一)款;
}
else if(noOfReminders==2){
发送通知(i);
}
}
}
}
}
可能是var currentDate=new Date() 确保startDate和endDate的类型为DateHi,是否可以包含调用businessDaysBetween方法的代码?可能是startDate或endDate未定义,这可能是因为它们是用无效的日期字符串初始化的,如果是这样的话;它不是
var currentDate=new Date()代码>,工作正常。功能也很好。几乎可以肯定这是var-rementerDate=sheet.getRange(i,13).getValue()代码>。Doconsole.log(typeof(提醒日期))代码>并查看您得到了什么。谢谢-我还没有使用console.log-应该在脚本中的什么位置
function sendReminderEmail() {
try {
//Open Google spreadsheet "New Hire - Notification", and retrieve "New Hire" sheet
var spreadsheet = SpreadsheetApp.openById("is identified");
var sheet = spreadsheet.getSheetByName("New Hire");
}
catch (e)
{
Browser.msgBox(e.message);
}
var rows = sheet.getLastRow();
var currentDate = new Date();
//Iterate through rows
for (var i = 2; i <= rows; i++) {
var hrngMgrComplete = sheet.getRange(i, sheet.getLastColumn());
//Check if hiring manager has completed details form
if (hrngMgrComplete.getValue() != "Yes") {
var reminderDate = sheet.getRange(i, 13).getValue();
var days = businessDaysBetween(reminderDate, currentDate);
//check if last reminder was sent earlier than 3 business days or more
//from today.
if (days >= 3) {
var noOfReminders = sheet.getRange(i, 14).getValue();
//Send appropriate email based on how many reminders have been received
if (noOfReminders == 0) {
sendFirstReminder(i);
}
else if (noOfReminders == 1) {
sendSecondReminder(i);
}
else if (noOfReminders == 2) {
sendHRNotification(i);
}
}
}
}
}