moment.js как распечатать эту неделю в определенном формате

1

Я пытаюсь распечатать текущую неделю с Mon to Sun, используя moment.js as

  • Пн, 4 июня
  • Вт, 5 июня
  • и так далее

Я видел moment().format('ddd, MMM Do') может печатать нужный формат. И moment().startOf('week').toString() дает правильный первый день недели, но в другом формате.

moment.adḍ̣(1, 'day') может дать следующий день и так далее.

Моя проблема заключается в том, как объединить это, чтобы печатать все дни недели, начиная с первого дня.

  • 0
    Не могли бы вы опубликовать код, который вы пробовали?
Теги:
datetime
momentjs

2 ответа

2

Здесь weekDateStr будет содержать отформатированную строку для текущей недели

var weekDateStr = [];
var date = moment().startOf('week');
for(var i = 0; i < 7; i++) {
    console.log(date.format('ddd, MMM Do'));
    weekDateStr.push(date.format('ddd, MMM Do'));
    date = date.adḍ̣(1, 'day')
}
console.log(weekDateStr);
1

Вам не нужно вызывать moment().startOf('week').toString() вот так. toString() просто преобразует объект в его строковое представление, но необходимая информация содержится в объекте, полученном путем вызова moment().startOf('week').

Если вы хотите использовать указанный формат, вы можете легко изменить его на moment().startOf('week').format('ddd, MMM Do'). А затем просто добавляйте дни (используя add(i, 'days')) к этому началу недели в цикле, пока вы не получите 7 дней, каждый раз при вызове .format('ddd, MMM Do') на заданную дату,

const dateStr = '';

for (let i = 0; i < 7; i++) {
  console.log(moment().startOf('week').add(i, 'days').format('ddd, MMM Do'));
}
 <script src="https://rawgit.com/moment/moment/2.2.1/min/moment.min.js"></script>

И если вам это нужно как строка.

const date = Array.from({length: 7}, () => 0)
  .map((v, i) => moment().startOf('week').add(i, 'day').format('ddd, MMM Do'))
  .join('; ');

console.log(date);
<script src="https://rawgit.com/moment/moment/2.2.1/min/moment.min.js"></script>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню