Подтвердить что ты не робот

Moment js получает первый и последний день текущего месяца

Как получить первый и последний день и время текущего месяца в следующем формате в moment.js:

2016-09-01 00:00

Я могу получить текущую дату и время следующим образом: moment().format('YYYY-MM-DD h:m'), который будет выводиться в указанном выше формате.

Однако мне нужно получить дату и время первого и последнего дня текущего месяца любым способом сделать это?

EDIT: Мой вопрос отличается от этого, потому что он запрашивает определенный месяц, который у пользователя уже есть, тогда как я прошу месяц текущий вместе с запрашивая конкретный формат даты, которая не упоминается в другом так называемом "дубликате".

4b9b3361

Ответ 1

Вы можете сделать это без instant.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);

Ответ 2

Если кто-то пропустил комментарии к исходному вопросу, вы можете использовать встроенные методы (работает с моментом 1.7):

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

Ответ 3

Был бы еще один способ сделать это:

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

Ответ 4

Предполагая, что вы используете Picker для выбора даты, чтобы получить даты. Вы могли бы сделать что-то вроде того, чтобы получить то, что хотите.

$('#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')}