[javascript] 현재 날짜로부터 30 일 전에받는 방법은 무엇입니까?

시작 달력 입력 상자와 끝 달력 입력 상자가 있습니다. 기본 시작 달력 입력 상자는 현재 날짜 30 일 전이고 종료 달력 입력 상자는 현재 날짜가됩니다. 여기 내 데이트 변수가 있습니다.

var today = new Date(),
    dd    = today.getDate(),
    mm    = today.getMonth(),
    yyyy  = today.getFullYear(),
    month = ["January", "February", "March",
        "April", "May", "June", "July", "August",
        "September", "October" "November", "December"],
    startdate = month[mm] + ", " + yyyy.toString();

종료 날짜는 var enddate = startdate - 30;분명히 작동하지 않습니다.

따라서 현재 날짜가 2011 년 12 월 30 일이면 시작 날짜를 2011 년 12 월 1 일로 지정하고 싶습니다.

편집 : 내 질문에 대한 답변이 … 일종의. Date.today();그리고 Date.today().add(-30);일하지만 형식의 날짜가 필요합니다 January 13, 2012. 아닙니다 Fri Jan 13 2012 10:48:56 GMT -055 (EST). 도움이 필요하세요?

추가 편집 :이 글을 쓰는 현재 2018 년 입니다. Moment.js를 사용 하십시오 . 그게 제일이야.



답변

우수한 Datejs JavaScript 날짜 라이브러리를 사용해보십시오 (원본은 더 이상 유지되지 않으므로 대신 이 적극적으로 유지되는 포크에 관심 있을 수 있습니다 ).

Date.today().add(-30).days(); // or...
Date.today().add({days:-30});

[편집하다]

우수한 Moment.js JavaScript 날짜 라이브러리 도 참조하십시오 .

moment().subtract(30, 'days'); // or...
moment().add(-30, 'days');


답변

이 시도

var today = new Date()
var priorDate = new Date().setDate(today.getDate()-30)

@Neel에서 언급했듯이이 메서드는 Javascript Timestamp 형식으로 반환됩니다. 다시 날짜 개체로 변환하려면 위의 내용을 새 Date 개체에 전달해야합니다. new Date(priorDate).


답변

다음은 추악한 해결책입니다.

var date = new Date(new Date().setDate(new Date().getDate() - 30));


답변

startDate = new Date(today.getTime() - 30*24*60*60*1000);

.getTime()메서드는 일반 수학 연산을 사용할 수있는 표준 JS 타임 스탬프 (970 년 1 월 1 일 이후의 밀리 초)를 반환하며,이를 Date 객체에 직접 피드백 할 수 있습니다.


답변

오늘부터 30 일 후

let now = new Date()
console.log('Today: ' + now.toUTCString())
let next30days = new Date(now.setDate(now.getDate() + 30))
console.log('Next 30th day: ' + next30days.toUTCString())

오늘 지난 30 일 양식 받기

let now = new Date()
console.log('Today: ' + now.toUTCString())
let last30days = new Date(now.setDate(now.getDate() - 30))
console.log('Last 30th day: ' + last30days.toUTCString())


답변

자바 스크립트는 외부 라이브러리없이 처리 할 수 ​​있습니다.

var today = new Date();
var dateLimit = new Date(new Date().setDate(today.getDate() - 30));

document.write(today + "<br/>" + dateLimit)


답변

쉬운.(Using Vanilla JS)

let days=30;
this.maxDateTime = new Date(Date.now() - days * 24 * 60 * 60 * 1000);

ISOFormat?

let days=30;
this.maxDateTime = new Date(Date.now() - days * 24 * 60 * 60 * 1000).toISOString();