[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 를 사용하면 훨씬 쉽게 생활 할 수 있습니다.

http://simonwillison.net/2007/Dec/3/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()
    );
}