Moment js получает первый и последний день текущего месяца
Как получить первый и последний день и время текущего месяца в следующем формате в moment.js:
2016-09-01 00:00
Я могу получить текущую дату и время следующим образом:
moment().format('YYYY-MM-DD h:m')
, который будет выводиться в указанном выше формате.
Однако мне нужно получить дату и время первого и последнего дня текущего месяца любым способом сделать это?
EDIT:
Мой вопрос отличается от этого, потому что он запрашивает определенный месяц, который у пользователя уже есть, тогда как я прошу месяц текущий вместе с запрашивая конкретный формат даты, которая не упоминается в другом так называемом "дубликате".
Ответы
Ответ 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')}