2013-07-10 162 views
1

我已经使用以下脚本在一个字段中输入日期,为其添加日期以填充另一个字段。现在我想做相反的事情,输入日期并减去天数来填充不同的字段。使用parseInt减去日期

//Script below is the addition 
//Field: CTS D/R 

var dString = getField("Task Anlys").value; 
var dParts = dString.split("-"); 

var mydate=new Date(); 

mydate.setDate(dParts[0]); 
mydate.setMonth(monthsByName[dParts[1]]); 
mydate.setYear(dParts[2]); 

//Date + 14 Days * 24 Hours * 60 Minutes * 60 Seconds * 1000 milliseconds 
var calNewDays = 14 * 24 * 60 * 60 * 1000; 

//Set new date 
mydate.setTime(calNewDays + parseInt(mydate.getTime())); 

var year=mydate.getYear() + 1900; 
var month=mydate.getMonth(); 
var day=mydate.getDate(); 

getField("CTS D/R").value = day + "-" + months[month] + "-" + year;` 

//Script below is an attempt for subtraction 

//Date = 30 Days * 24 Hours * 60 Minutes * 60 Seconds * 1000 milliseconds 
var calNewDays = 30 * 24 * 60 * 60 * 1000; 

//Set new date 
mydate.setTime(parseInt(mydate.getTime() - calNewDays));` 
+0

什么问题? –

+0

我建议查找date.js脚本。它有各种方便的日期功能。 –

+2

处理日期时,最好使用像[Moment.js](http://momentjs.com/)这样的库, –

回答

0

为什么不加/减上设定的日期部分,这样的天所需量?

var dString = getField("Task Anlys").value; 
var dParts = dString.split("-"); 
var oldDate = dParts[0] * 1; // convert to number 

var mydate=new Date(); 
mydate.setDate(oldDate + 14); // Date object automagically does all calendar math 
mydate.setMonth(monthsByName[dParts[1]]); 
mydate.setFullYear(dParts[2]); 

var year=mydate.getFullYear(); 
var month=mydate.getMonth(); 
var day=mydate.getDate(); 

getField("CTS D/R").value = day + "-" + months[month] + "-" + year; 
1

JavaScript Date对象可以非常简单地完成所有您需要的数据运算。 :

var d = new Date(); // a date 
d.setDate (d.getDate() + 5); // add 5 days to d 
           // doing month and year overflow as necessary 

d.setDate (d.getDate() - 5); // subtract 5 days from d 
           // doing month and year overflow as necessary 


var d = new Date();   // ==> Wed Jul 10 2013 20:55:53 GMT+0200 (CEST) 
d.setDate (d.getDate() + 33); // ==> Mon Aug 12 2013 20:52:15 GMT+0200 (CEST) 

var d = new Date();   // ==> Wed Jul 10 2013 20:55:53 GMT+0200 (CEST) 
d.setDate (d.getDate() - 15) // ==> Tue Jun 25 2013 20:52:47 GMT+0200 (CEST) 

以类似的方式,您可以添加或减去月份和年份,小时或分钟。