在循环 netsuite 脚本中添加日期
Add Dates in a loop netsuite scripting
我正在尝试通过在循环中使用 nlapiAddDays() 添加更多天数来打印日期
var startdate = nlapiGetLineItemValue('item','custcol_startdt',i+1);
var enddate = nlapiGetLineItemValue('item','custcol_enddt',i+1);
var stringtodate1 = nlapiStringToDate(startdate);
var stringtodate2 = nlapiStringToDate(enddate);
//BELOW FORMULA I USED TO GET NUMBER OF MONTHS BETWEEN TWO DATES
var diff =(stringtodate2.getTime() - stringtodate1.getTime()) / 1000;
var diffMonths = Math.ceil(diff / (60 * 60 * 24 * 7 * 4)-1);
if(diffMonths > 1)
{
for(i=0; i <= diffMonths; i++)
{ var AddDays = 30;
var days = null;
if(i == 0)
{
days = stringtodate1;
}
else
{
days = nlapiAddDays(stringtodate1, AddDays);
}
}
nlapiLogExecution('DEBUG','days',days);
AddDays++;
}
在这里,如果我变成 1,30 天,但当我变成 2 时,应该添加 60 天,因为 AddDays++ 但它没有发生。每个循环添加 30 天。
您正在将循环顶部的 AddDays 重置为 30。你需要:
var AddDays = 30;
for(i=0; i <= diffMonths; i++)
{ ...
我正在尝试通过在循环中使用 nlapiAddDays() 添加更多天数来打印日期
var startdate = nlapiGetLineItemValue('item','custcol_startdt',i+1);
var enddate = nlapiGetLineItemValue('item','custcol_enddt',i+1);
var stringtodate1 = nlapiStringToDate(startdate);
var stringtodate2 = nlapiStringToDate(enddate);
//BELOW FORMULA I USED TO GET NUMBER OF MONTHS BETWEEN TWO DATES
var diff =(stringtodate2.getTime() - stringtodate1.getTime()) / 1000;
var diffMonths = Math.ceil(diff / (60 * 60 * 24 * 7 * 4)-1);
if(diffMonths > 1)
{
for(i=0; i <= diffMonths; i++)
{ var AddDays = 30;
var days = null;
if(i == 0)
{
days = stringtodate1;
}
else
{
days = nlapiAddDays(stringtodate1, AddDays);
}
}
nlapiLogExecution('DEBUG','days',days);
AddDays++;
}
在这里,如果我变成 1,30 天,但当我变成 2 时,应该添加 60 天,因为 AddDays++ 但它没有发生。每个循环添加 30 天。
您正在将循环顶部的 AddDays 重置为 30。你需要:
var AddDays = 30;
for(i=0; i <= diffMonths; i++)
{ ...