vue 遍历两个日期之间的所有日期 不使用moment
时间: 2024-03-26 19:41:28 浏览: 74
你可以使用JavaScript原生的Date对象进行日期的遍历,以下是一个简单的实现:
```javascript
function getDatesBetween(startDate, endDate) {
let dates = [];
let currentDate = new Date(startDate);
while (currentDate <= endDate) {
dates.push(new Date(currentDate));
currentDate.setDate(currentDate.getDate() + 1);
}
return dates;
}
// 使用示例
let startDate = new Date('2022-01-01');
let endDate = new Date('2022-01-10');
let dates = getDatesBetween(startDate, endDate);
console.log(dates);
```
在上面的代码中,`getDatesBetween` 函数接收两个日期参数 `startDate` 和 `endDate`,并返回这两个日期之间所有日期的数组。我们使用一个 `while` 循环来遍历日期范围内的每一天,将每个日期推入一个数组中并返回。值得注意的是,我们要使用 `new Date` 来创建新的日期对象,否则会出现引用问题。
相关问题
vue 遍历两个日期之间的所有日期
你可以使用 moment.js 库来实现遍历两个日期之间的所有日期,以下是一个简单的 Vue.js 方法实现:
```
methods: {
getDates(startDate, endDate) {
let dates = [];
let currentDate = moment(startDate);
while (currentDate <= moment(endDate)) {
dates.push(moment(currentDate).format('YYYY-MM-DD'));
currentDate = moment(currentDate).add(1, 'days');
}
return dates;
}
}
```
在上面的代码中,我们使用 moment.js 来解析和格式化日期。我们定义了一个 `getDates` 方法,该方法接受两个日期作为参数,然后使用 `moment` 创建起始日期和结束日期的 Moment 对象。然后,我们循环遍历这个日期范围,直到我们达到结束日期,每次迭代都将当前日期格式化为 `YYYY-MM-DD` 格式并将其添加到 `dates` 数组中。最后,我们返回生成的日期数组。
你可以在 Vue.js 模板中调用此方法,如下所示:
```
<template>
<div>
<ul>
<li v-for="date in getDates('2021-01-01', '2021-01-05')" :key="date">{{ date }}</li>
</ul>
</div>
</template>
```
在上面的代码中,我们使用 `v-for` 指令循环遍历 `getDates` 方法生成的日期数组,并将每个日期显示在列表项中。
vue js 遍历最小日期到最大日期中的每一天
可以使用Vue.js结合Moment.js 或 day.js 库来遍历最小日期到最大日期的每一天。以下是一个示例代码:
```html
<template>
<div>
<div v-for="date in dates" :key="date">{{ date }}</div>
</div>
</template>
<script>
import moment from 'moment'; // 或 import dayjs from 'dayjs';
export default {
data() {
return {
startDate: '2021-01-01',
endDate: '2021-01-10',
dates: [],
};
},
mounted() {
const start = moment(this.startDate);
const end = moment(this.endDate);
for (let m = start; m.diff(end, 'days') <= 0; m.add(1, 'days')) {
this.dates.push(m.format('YYYY-MM-DD'));
}
},
};
</script>
```
在这个示例中,我们定义了startDate和endDate两个数据属性,分别表示最小日期和最大日期。在mounted钩子函数中,我们使用Moment.js或day.js库的API来遍历日期范围内的每一天,并将格式化后的日期字符串添加到dates数组中。最后在模板中使用v-for指令遍历dates数组,生成日期列表。
阅读全文