2016-08-19 19 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; 
} 

この出力は:、

+1

スーパーそのためのおかげ "... 32により、延滞日数のいかなる警告ません"。 – MG2016

+1

コードは今動作していますが、奇妙な計算が行われているようです。だから、期限日が8月17日で、今日の日付が19日だったら、私の関数が2になると期待していたでしょう。代わりに3を返します。検索でdays overdueフィールドを使うと、 2つの異なるタイムゾーンを使用していますか? – MG2016

+0

それは非常に可能です。ハードコードされた2つの日付で実行した場合、私は2を取得します。それを介していくつかのログを追加し、スクリプトを介して吐き出されているものを見てください。それはあなたに答えを与えるはずです。 – W3BGUY