我的截止日期返回日期,而当前日期返回日期和时间。尝试调用需要日期/时间的函数时,我收到以下错误。如何构建我的截止日期以包括时间?
错误: due_date.getTime不是函数
var current_date = nlapiDateToString(new Date(), 'datetime')
var dd = nlapiGetFieldValue('duedate');
var due_date = nlapiDateToString(new Date(), dd)
var days_overdue = DateOverdue(current_date, due_date);
function DateOverdue(current_date, due_date) {
var time_difference = Math.abs(due_date.getTime() - current_date.getTime());
var no_days_overdue_by = Math.ceil(time_difference / (1000 * 3600 * 24));
alert("No of Days Overdue By... " + no_days_overdue_by);
return no_days_overdue_by;
}
答案 0 :(得分:4)
问题是您正在尝试在字符串上运行日期函数。使用nlapiDateToString()函数将日期设置为字符串。在nlapiStringToDate()函数中包装它们,这将解决您遇到的问题。以下是使用您的代码的示例。
var current_date=nlapiStringToDate(nlapiDateToString(new Date(),'datetime'));
var dd='7/19/2016';//nlapiGetFieldValue('duedate');
var due_date=nlapiStringToDate(dd);
var days_overdue=DateOverdue(current_date,due_date);
function DateOverdue(current_date,due_date){
var time_difference=Math.abs(due_date.getTime()-current_date.getTime());
var no_days_overdue_by=Math.ceil(time_difference/(1000*3600*24));
alert("No of Days Overdue By... "+no_days_overdue_by);
return no_days_overdue_by;
}
此输出:"警告否天数过期... 32"