2013-07-10 6 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) 

비슷한 방식으로 월 및 연도, 시간 또는 분을 더하거나 뺄 수 있습니다.