[javascript] JavaScript로 어제 날짜 계산

어제 JavaScript에서 날짜를 어떻게 계산 합니까?



답변

var date = new Date();

date ; //# => Fri Apr 01 2011 11:14:50 GMT+0200 (CEST)

date.setDate(date.getDate() - 1);

date ; //# => Thu Mar 31 2011 11:14:50 GMT+0200 (CEST)


답변

매우 효율적이지 않지만 oneliner로 :

var yesterday = new Date(new Date().setDate(new Date().getDate()-1));

위의 세 가지 Date객체는 불필요하게 낭비입니다. 다음을 사용하여 단일 인스턴스화로 줄일 수 있습니다.

var yesterday = (function(){this.setDate(this.getDate()-1); return this})
                  .call(new Date)

또는 원하는 경우 :

var yesterday = (function(d){ d.setDate(d.getDate()-1); return d})(new Date)

또는 화살표 기능이있는 ES6을 선호하는 경우 :

let yesterday = ( d => new Date(d.setDate(d.getDate()-1)) )(new Date);


답변

이 시도

var d = new Date();
d.setDate(d.getDate() - 1);


답변

놀랍게도 가장 쉬운 크로스 브라우저 솔루션에 대한 답은 없습니다

어제 정확히 같은 시간을 찾으려면 :

var yesterday = new Date(Date.now() - 86400000); // that is: 24 * 60 * 60 * 1000

그것은 당신이 의존성을 자유롭게하고 싶다면 그렇지 않으면 http://momentjs.com을 사용하는 것이 좋습니다


답변

질문을 일반화하고 다른 diff 계산을 사용하려면 다음을 사용하십시오.

var yesterday = new Date((new Date()).valueOf() - 1000*60*60*24);

이렇게하면 “지금”의 값을 기준으로 새 날짜 개체가 생성됩니다. 정수는 하루를 빼고 밀리 초 단위로 유닉스 시대를 나타냅니다.

이틀 전:

var twoDaysAgo = new Date((new Date()).valueOf() - 1000*60*60*24*2);

한 시간 전에:

var oneHourAgo = new Date((new Date()).valueOf() - 1000*60*60);


답변

나는 순간 라이브러리를 사용하는데 매우 유연하고 사용하기 쉽다.

귀하의 경우 :

let yesterday = moment().subtract(1, 'day').toDate();


답변

new Date(new Date().setDate(new Date().getDate()-1))