순간 js는 현재 달의 첫날과 마지막 날을받습니다.


137

moment.js에서 다음 달 형식으로 현재 달의 첫날과 마지막 날과 시간을 어떻게 얻습니까?

2016-09-01 00:00

moment().format('YYYY-MM-DD h:m')위와 같은 형식으로 출력되는 현재 날짜와 시간을 얻을 수 있습니다 .

그러나 현재 달의 첫날과 마지막 날의 날짜와 시간을 가져와야합니다.

편집 : 내 질문은 질문과 다릅니다. 왜냐하면 사용자가 이미 가지고있는 주어진 달을 요구하는 반면 다른 달에 언급되지 않은 날짜의 특정 형식을 요구하는 것과 함께 현재 달을 요구하기 때문에 '중복 '.



1
Moment.js는 첫 달과 마지막 달을 얻는 함수를 지원합니다. 나는 당신 이 이것
Tan Le

@TanLe 예. 그러나 다음과 같은 형식으로 출력됩니다. Thu Sep 01 2016 00:00:00 GMT+0100 (GMT Summer Time)내 질문에서 언급 한 형식을 원합니다.
user3574492

이 함수는 day의 moment 객체를 반환하므로 format을 사용하여 원하는 형식으로 출력 할 수 있습니다. : moment (). startOf ( 'month'). format ( 'YYYY-MM-DD HH : mm').
Tan Le

@AuditeMarlow 좋은 시도하지만 내 편집에서 설명한 것처럼 질문이 약간 다릅니다.
user3574492

답변:


371

누구나 원래 질문에 대한 의견을 놓친 경우 내장 방법을 사용할 수 있습니다 (Moment 1.7 기준).

const startOfMonth = moment().startOf('month').format('YYYY-MM-DD hh:mm');
const endOfMonth   = moment().endOf('month').format('YYYY-MM-DD hh:mm');

1
누군가 원래 의견을 삭제 한 이유를 모르지만 이것이 답변이 아닌 이유는 답변이 몇 달 후에 게시 되었기 때문입니다.
user3574492

2
@ user3574492 덕분에 큰 도움이되지 않았습니다. 설명을 보내 주셔서 감사합니다.이 답변이 가장 좋은 답변이라고 생각되면 나중에 게시 된 경우에도 수락 된 답변으로 변경할 수 있다고 생각합니다.
알리 야즈 다니

3
moment(1, "DD");이달의 첫날을 반환합니다
Anil Vangari

35

이 작업을 수행하는 다른 방법이 있습니다.

var begin = moment().format("YYYY-MM-01");
var end = moment().format("YYYY-MM-") + moment().daysInMonth();

27

moment.js 없이이 작업을 수행 할 수 있습니다

기본 Javascript 코드에서이를 수행하는 방법 :

var date = new Date(), y = date.getFullYear(), m = date.getMonth();
var firstDay = new Date(y, m, 1);
var lastDay = new Date(y, m + 1, 0);

firstDay = moment(firstDay).format(yourFormat);
lastDay = moment(lastDay).format(yourFormat);

이것은 Thu Sep 01 2016 00:00:00 GMT+0100 (GMT Summer Time)내가 원하는 형식이 아닌 기본 날짜 형식으로 출력됩니다 .2016-09-01 00:00
user3574492

1
모멘트를 사용하여 날짜를 포맷하십시오 ... firstDay = moment (firstDay) .format ( 'MM / DD / YYYY'); lastDay = 순간 (lastDay) .format ( 'MM / DD / YYYY');
Kevin Grosgojat

1
어떻게 얻을 수 startdateenddate다음 달의 공식을 사용하고 계십니까?
alka vaghela

28
"moment.js없이이 작업을 수행 할 수 있습니다" 는 moment.js를 사용하여 날짜 형식을 지정합니다.
SteamFire

10

날짜 범위 선택기를 사용하여 날짜를 검색한다고 가정합니다. 원하는 것을 얻기 위해 무언가를 할 수 있습니다.

$('#daterange-btn').daterangepicker({
            ranges: {
                'Today': [moment(), moment()],
                'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
                'Last 7 Days': [moment().subtract(6, 'days'), moment()],
                'Last 30 Days': [moment().subtract(29, 'days'), moment()],
                'This Month': [moment().startOf('month'), moment().endOf('month')],
                'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
            },
            startDate: moment().subtract(29, 'days'),
            endDate: moment()
        }, function (start, end) {
      alert( 'Date is between' + start.format('YYYY-MM-DD h:m') + 'and' + end.format('YYYY-MM-DD h:m')}

9

moment startOf ()endOf () 는 검색중인 답변입니다. 예를 들면 다음과 같습니다.

moment().startOf('year');    // set to January 1st, 12:00 am this year
moment().startOf('month');   // set to the first of this month, 12:00 am
moment().startOf('week');    // set to the first day of this week, 12:00 am
moment().startOf('day');     // set to 12:00 am today

1

현재 달의 첫 번째 및 마지막 날짜

console.log("current month first date");
    const firstdate = moment().startOf('month').format('DD-MM-YYYY');
console.log(firstdate);

console.log("current month last date");
    const lastdate=moment().endOf('month').format("DD-MM-YYYY"); 
console.log(lastdate); 

1

간단하게 daysInMonth ()endOf ()를 사용할 수 있습니다

const firstDay = moment('2016-09-15 00:00', 'YYYY-MM-DD h:m').startOf('month').format('D')
const lastDay = moment('2016-09-15 00:00', 'YYYY-MM-DD h:m').endOf('month').format('D')
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.