У меня есть массив событий календаря с предварительно отформатированной датой: 20190517T010000Z .
Мне нужно отфильтровать массив на основе следующего:
1) Будущие события (любые события, происходящие более * NOW
)
2) Прошлые события (любые событияэто произошло менее чем NOW
)
3) Новые события, созданные за последние 7 дней (NOW
- 7 дней)
У меня есть пример, жестко закодированный ниже - но нужен NOW
быть динамичным и основанным на системном времени пользователя.Я не могу понять, как получить NOW
в том же формате, что и формат даты и времени, который я получаю в моем массиве.Кроме того, я не знаю, где в моем коде он должен находиться (в отдельном файле JS или в компоненте Vue)?
Как только он будет работать в указанном ниже компоненте, он будет перемещен вVUEX Getter.
<template>
<div class="text-left m-4 p-4">
<div>
Total Number Events: {{ allEvents.length }}
</div>
<div>
Events Created In Last 7 Days: {{ createdEvents }}
</div>
<div>
Future Events: {{ futureEvents }}
</div>
<div>
Past Events: {{ pastEvents }}
</div>
</div>
</template>
<script>
import { mapState } from 'vuex'
export default {
computed: {
...mapState(['allEvents']),
futureEvents () {
return this.$store.state.allEvents.filter(allEvents => allEvents.dtstart >= '20190517T010000Z').length
},
pastEvents () {
return this.$store.state.allEvents.filter(allEvents => allEvents.dtstart <= '20190517T235900Z').length
},
createdEvents () {
return this.$store.state.allEvents.filter(
allEvents => allEvents.created >= '20190511T235900Z' && allEvents.created <= '20190517T235900Z' )
.length
}
},
}
</script>
Приведенный выше код работает, но он прямо сейчас жестко запрограммирован и должен быть динамичным.Любые мысли или предложения приветствуются.