Как я могу получить первый день следующего месяца, используя Angular и Moment - PullRequest
0 голосов
/ 05 июня 2019

У нас есть проблема сгенерированных журналов в нашем приложении. И решение состоит в том, что нам нужно получить первый день следующего месяца, даже если выбранный день находится в середине месяца.

Пытался читать документы на Момент, но я не мог найти никакого возможного решения.

var currentDate = new Date();
var start_date = new Date(); //Wed Jun 05 2019 13:23:06 GMT+0800 (Philippine Standard Time)

console.log(start_date);

start_date.setDate(start_date.getDate() - 365); //1496640186958

console.log(start_date.setDate(start_date.getDate() - 365)); //Monday, June 5, 2017 1:23:06.958 PM GMT+08:00
// this output should be July 1, 2017, how can I get the first day of next month here?

start_date = customizeDate.formatDateToString(start_date);
var end_date = dateRange.endDate;

Ответы [ 4 ]

2 голосов
/ 05 июня 2019

Вы можете использовать это с вашим пользовательским форматом

const startOfNextMonth = moment().add(1, 'M').startOf('month').format('YYYY-MM-DD hh:mm:ss');

const startOfNextMonth = moment().add(1, 'M').startOf('month').format('YYYY-MM-DD hh:mm:ss');
console.log(startOfNextMonth);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.js"></script>
0 голосов
/ 05 июня 2019

Вы можете сделать это с помощью Vanilla JavaScript.Обратите внимание, что я добавил оператор if, чтобы проверить, является ли месяц текущей датой декабрь.Это сделано для предотвращения любых проблем, из-за которых месяц будет «переполнен» до 12.

const today = new Date(); 
let next;
if (today.getMonth() === 11) {
  next = new Date(today.getFullYear() + 1, 0, 1);
} else {
    next = new Date(today.getFullYear(), today.getMonth() + 1, 1);
}

console.log(next);
0 голосов
/ 05 июня 2019

Вот возможный подход: создать новый объект даты, затем добавить 1 к месяцу и, наконец, установить день на 1:

start_date = new Date(start_date.getFullYear(), start_date.getMonth() + 1, 1);

Stackblitz

0 голосов
/ 05 июня 2019

Хорошо, мне удалось решить эту цепочку функций:

console.log(moment(1496640186958).add(1, 'months').startOf('month').format('ll'));
...