다음 코드는 일정 방식으로 올해과 형식 그것의 현재 월을 취다음 코드를 작성하면 지난 달에 12 개월을 더한 월이 생성됩니까?
let curYear = 2017
let curMonth = 11
let result = []
let firstDayOfMonth = new Date(curYear, curMonth, 1)
let lastDayOfMonth = new Date(curYear, curMonth, getLastDayOfMonth(curMonth))
result.unshift(firstDayOfMonth)
for (let d = prevDate(firstDayOfMonth); d.getDay() !== 6; d = this.prevDate(d)) {
result.unshift(d)
}
for (let d = nextDate(firstDayOfMonth); d <= lastDayOfMonth; d = nextDate(d)) {
result.push(d)
}
for (let d = nextDate(lastDayOfMonth); d.getDay() !== 0; d = nextDate(d)) {
result.push(d)
}
console.log(JSON.stringify(result))
function nextDate (d) {
let result = new Date(d.valueOf())
result.setDate(d.getDate() + 1)
return result
}
function prevDate (d) {
let result = new Date(d.valueOf())
result.setDate(d.getDate() - 1)
return result
}
function getLastDayOfMonth (m) {
let result = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if (leapYear) {
result[1] = 29
}
return result[m]
}
function leapYear() {
if (curYear % 100 === 0) {
return curYear % 400 === 0
} else {
return curYear % 4 === 0
}
}
출력 :
[ "2017-11-25T16 : 00 : 00.000Z", "2017 -11-26T16 : 00 : 00.000Z ","2017-11-27T16 : 00 : 00.000Z ","2017-11-28T16 : 00 : 00.000Z ","2017-11-29T16 : 00 : 00.000Z " "2017-11-30T16 : 00 : 00.000Z", "2017-12-01T16 : 00 : 00.000Z", "2017-12-02T16 : 00 : 00.000Z", "2017-12-03T16 : 00 : 00.000Z ","2017-12-04T16 : 00 : 00.000Z ","2017-12-05T16 : 00 : 00.000Z ","2017-12-06T16 : 00 : 00.000Z ","2017-12-07T16 : 00 : 00.000Z ","2017-12-08T16 : 00 : 00.000Z ","2017-12-09T16 : 00 : 00.000Z ","2017-12-10T16 : 00 : 00.000Z ","2017-12-11T16 : 00 : 00.0 00Z ","2017-12-12T16 : 00 : 00.000Z ","2017-12-13T16 : 00 : 00.000Z ","2017-12-14T16 : 00 : 00.000Z ","2017-12-15T16 : 00 : 00.000Z ","2017-12-16T16 : 00 : 00.000Z ","2017-12-17T16 : 00 : 00.000Z ","2017-12-18T16 : 00 : 00.000Z ","2017-12-19T16 : 00 : 00.000Z ","2017-12-20T16 : 00 : 00.000Z ","2017-12-21T16 : 00 : 00.000Z ","2017-12-22T16 : 00 : 00.000Z ","2017-12 -23T16 : 00 : 00.000Z ","2017-12-24T16 : 00 : 00.000Z ","2017-12-25T16 : 00 : 00.000Z ","2017-12-26T16 : 00 : 00.000Z ","2017 -12-27T16 : 00 : 00.000Z ","2017-12-28T16 : 00 : 00.000Z ","2017-12-29T16 : 00 : 00.000Z ","2017-12-30T16 : 00 : 00.000Z " "2017-12-31T16 : 00 : 00.000Z", "2018-01-01T16 : 00 : 00.000Z", "2018-01-02T16 : 00 : 00.000Z", "2018-01-03T16 : 00 : 00.000Z ","2018-01-04T16 : 00 : 00.000Z ","2018-01-05T16 : 00 : 00.000Z "]는 이전 12개월 플러스 현재 월을 반환하므로이 기능을 수정하는 방법
?
예를 들어 (오른쪽에서 왼쪽으로 읽기) :
(and so on) ... 2017-10-05, ... 2017-11-05, ... 2017-12-05, ... , 2018-01-05]
Codepen을 : https://codepen.io/alexcheninfo/pen/zpGMvz
참고 : 나는 또한 Moment.js/Luxon 대안을 환영
은 사용의 생각 더 많은 지원을위한 어떤 종류의 도서관? Like moment.js –
당신은 모든 코드를 작성했는데 가장 쉬운 부분을 어떻게 수행해야할지 모르십니까? – Adelin
출력은 어떻게 생겼을 까? – gurvinder372