目前正在尝试按周过滤我的数据数组,我已经能够很容易地按天过滤,但是我正在努力处理 x 和 y 之间的日期(例如按周)。
我尝试设置开始日期和结束日期(今天),然后尝试返回小于或等于开始日期和结束日期的日期,但失败了。
数据数组日期格式:dd/mm/yyyy (01/01/2000)
用户将选择使用哪个过滤器(因此 switch() )情况 7 被过滤 7 天。
computed: {
appointments: function () {
var today = new Date();
var dd = String(today.getDate()).padStart(2, '0');
var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0!
var yyyy = today.getFullYear();
var data = this.$store.state.appointments;
this.filter1_color = "grey";
this.filter2_color = "grey";
switch (this.dateFilter) {
case 0:
break;
case 1:
console.log("case1: " + today)
return data.filter(word => word.date == today);
case 7:
/// WORKING /// (ex. edit)
var week = [];
var today = moment();
var sevenDaysBefore = today.subtract(7, 'days');
for (var i = 0; i < data.length; i++) {
let momentDate = moment(data[i].date, 'DD/MM/YYYY')
let newDate = momentDate.format("DD/MM/YYYY")
if (momentDate.isBetween(sevenDaysBefore, moment(), null, '[]')) week.push(data[i]);
}
return week
///
}
return data;
},
Run Code Online (Sandbox Code Playgroud)
我需要过滤数据以仅显示数组中日期等于过去 7 天日期的项目。
您可以使用isBetween具有当前日期的 moment js 库的方法。您可以使用 将当前日期减去 7 天subtract(7, 'days')。
您可以isBetween在 moment js 库文档中查看有关方法的更多信息。该方法的第三个参数是粒度,在您的情况下似乎应该是“天”
const today = moment();
const sevenDaysBefore = moment().subtract(7, 'days');
console.log('Today is ' + today.format('MMM Do YYYY'));
console.log('Is ' + today.format('MMM Do YYYY') + ' included in the last seven days?');
console.log(today.isBetween(sevenDaysBefore, today, 'day', '[]'));
console.log('Is ' + sevenDaysBefore.format('MMM Do YYYY') + ' included in the last seven days?');
console.log(sevenDaysBefore.isBetween(sevenDaysBefore, today, 'day', '[]'));
const eightDaysBefore = moment().subtract(8, 'days');
console.log('Is ' + eightDaysBefore.format('MMM Do YYYY') + ' included in the last seven days?');
console.log(eightDaysBefore.isBetween(sevenDaysBefore, today, 'day', '[]'));
const oneDayAfter = moment().add(1, 'days');
console.log('Is ' + oneDayAfter.format('MMM Do YYYY') + ' included in the last seven days?');
console.log(oneDayAfter.isBetween(sevenDaysBefore, today, 'day', '[]'));Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.js"></script>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2394 次 |
| 最近记录: |