[javascript] JavaScript에서 날짜에서 일 빼기
누구든지 데이트를하는 쉬운 방법을 알고 있습니까 (예 : 오늘) X 일로 돌아가는가?
예를 들어 오늘 5 일 전의 날짜를 계산하려면
답변
다음과 같이 해보십시오 :
var d = new Date();
d.setDate(d.getDate()-5);
이렇게하면 날짜 개체가 수정되고 업데이트 된 날짜의 시간 값이 반환됩니다.
var d = new Date();
document.write('Today is: ' + d.toLocaleString());
d.setDate(d.getDate() - 5);
document.write('<br>5 days ago was: ' + d.toLocaleString());
답변
var dateOffset = (24*60*60*1000) * 5; //5 days
var myDate = new Date();
myDate.setTime(myDate.getTime() - dateOffset);
웹 응용 프로그램 전체에서 많은 헤드 데이트 날짜 조작을 수행하는 경우 DateJS 를 사용하면 훨씬 쉽게 생활 할 수 있습니다.
답변
다음과 같이 진행됩니다.
var d = new Date(); // today!
var x = 5; // go back 5 days!
d.setDate(d.getDate() - x);
답변
getDays + X가 일 / 월 경계에서 작동하지 않는 것으로 나타났습니다. 날짜가 1970 년 이전이 아닌 한 getTime을 사용할 수 있습니다.
var todayDate = new Date(), weekDate = new Date();
weekDate.setTime(todayDate.getTime()-(7*24*3600000));
답변
moment.js를 얻으십시오. 모든 멋진 아이들이 사용합니다. 더 많은 서식 옵션 등이 있습니다.
var n = 5;
var dateMnsFive = moment(<your date>).subtract(n , 'day');
선택 과목! 각도 바인딩의 경우 JS Date obj로 변환하십시오.
var date = new Date(dateMnsFive.toISOString());
선택 과목! 체재
var date = dateMnsFive.format("YYYY-MM-DD");
답변
음수 값을 전달하여 일을 빼고 양수 값을 전달하여 일을 더할 수 있도록 Date에 대한 프로토 타입을 만들었습니다.
if(!Date.prototype.adjustDate){
Date.prototype.adjustDate = function(days){
var date;
days = days || 0;
if(days === 0){
date = new Date( this.getTime() );
} else if(days > 0) {
date = new Date( this.getTime() );
date.setDate(date.getDate() + days);
} else {
date = new Date(
this.getFullYear(),
this.getMonth(),
this.getDate() - Math.abs(days),
this.getHours(),
this.getMinutes(),
this.getSeconds(),
this.getMilliseconds()
);
}
this.setTime(date.getTime());
return this;
};
}
그래서 그것을 사용하려면 간단히 쓸 수 있습니다.
var date_subtract = new Date().adjustDate(-4),
date_add = new Date().adjustDate(4);
답변
기존 솔루션 중 일부는 가깝지만 정확히 내가 원하는 것은 아닙니다. 이 함수는 양수 또는 음수 값 모두에서 작동하며 경계 경우를 처리합니다.
function addDays(date, days) {
return new Date(
date.getFullYear(),
date.getMonth(),
date.getDate() + days,
date.getHours(),
date.getMinutes(),
date.getSeconds(),
date.getMilliseconds()
);
}