2016-08-19 118 views
2

我的截止日期返回一個日期,而我的當前日期返回日期和時間。當嘗試調用需要日期/時間的函數時,我會看到下面的錯誤。我如何構建我的截止日期以包含時間?NetSuite - 日期問題

錯誤: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; 
 
}

回答

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」

+1

中超,感謝。 – MG2016

+1

雖然代碼現在可用 - 似乎有一個奇怪的計算。所以如果過期的日期是8月17日,今天的日期是19日 - 我希望我的函數返回2.相反,它返回3.當我在搜索中使用過期日期字段時,我看到3.鑼來猜測那些過期的日子正在使用2個不同的時區? – MG2016

+0

這是非常可能的。如果我使用硬編碼的這兩個日期運行它,我會得到2.通過它添加一些日誌記錄並查看它通過腳本吐出的內容。這應該給你答案。 – W3BGUY