developer tip

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

optionbox 2020. 10. 6. 08:06
반응형

현재 날짜로부터 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 객체에 직접 피드백 할 수 있습니다.


Javascript는 외부 라이브러리 없이도 처리 할 수 ​​있습니다.

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

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


오늘부터 30 일 후

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

오늘 지난 30 일 양식 받기

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


나는 date.js를 사용 합니다 . 이를 쉽게 처리하고 모든 윤년의 불쾌 함을 처리합니다.


순간 js 를 선호합니다

startDate = moment().subtract(30, 'days').format('LL')  // January 29, 2015

endDate = moment().format('LL'); // February 28, 2015

쉬운.

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();

이것은 ES6 버전입니다

let date = new Date()
let newDate = new Date(date.setDate(date.getDate()-30))
console.log(newDate.getMonth()+1 + '/' + newDate.getDate() + '/' + newDate.getFullYear() )

Node JS에서 moment를 사용하여 한 줄의 코드를 통해 간단하게 수행 할 수 있습니다. :)

    let lastOneMonthDate = moment().subtract(30,"days").utc().toISOString()

UTC 형식을 원하지 않음, EASIER : P

    let lastOneMonthDate = moment().subtract(30,"days").toISOString()

momentjs에 관심이 없다면 다음을 사용할 수 있습니다.

let x = new Date()

x.toISOString(x.setDate(x.getDate())).slice(0, 10)

기본적으로 현재 날짜 (당월 날짜의 숫자 값)를 가져 와서 값을 설정합니다. 그런 다음 순수한 숫자 날짜 (예 : 2019-09-23)를 잘라내는 ISO 형식으로 변환합니다.

누군가에게 도움이되기를 바랍니다.

참고 URL : https://stackoverflow.com/questions/8842732/how-to-get-30-days-prior-to-current-date

반응형