어제 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);
답변
답변
new Date(new Date().setDate(new Date().getDate()-1))