#javascript #date #vue.js
#javascript #Дата #vue.js
Вопрос:
Привет, у меня есть этот скрипт ( vue.js ) я вижу, что следующие 2 недели работают хорошо, я должен изменить то, что я вижу 2 недели в прошлом.. Спасибо
methods: {
// Get all days without sunday:
dates(index) {
var week = new Array();
let current = new Date();
// Starting Monday not Sunday
current.setDate((current.getDate() - current.getDay() 1));
for (var i = 0; i < 13; i ) {
let date = new Date(current);
week.push(moment(date).format('DD.MM.YY'));
current.setDate(current.getDate() 1);
}
return week[index];
},
Комментарии:
1. Ваш вопрос не очень ясен. Как вы хотите, чтобы результат выглядел?
Ответ №1:
Если вы хотите вернуться назад во времени, вам нужно вычесть из текущей даты:
methods: {
// Get all days without sunday:
dates(index) {
var week = new Array();
let current = new Date();
// Starting Monday not Sunday
current.setDate((current.getDate() - current.getDay() 1));
for (var i = 0; i < 13; i ) {
let date = new Date(current);
week.push(moment(date).format('DD.MM.YY'));
current.setDate(current.getDate() - 1); // <-- this line changed
}
return week[index];
},
Ответ №2:
Попробуйте это:
function dates(index) {
var week = new Array();
let current = moment().subtract(1, 'days');
for (var i = 0; i < 12; i ) {
week.push(current.format('DD.MM.YY'));
current = current.subtract(1, 'days')
}
console.log(week);
return week[index];
}
console.log(dates(2));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.27.0/moment.min.js"></script>
Комментарии:
1. Это кажется довольно неэффективным, оно копирует текущий без причины, затем копирует копию для создания объекта moment только для получения форматированной даты. Почему бы не создать единый объект moment, увеличить и отформатировать его? «Начать с понедельника, а не в воскресенье» работает только в том случае, если текущий день — вторник.