Как выводить дату текущую в таком формате 2020-10-29?
Мой пример вывод даты
beforeDestroy() {
clearInterval(this.interval)
},
created() {
this.interval = setInterval(() => {
this.date = new Date()
}, 1000);
}
template
<b-col class="font-weight-bold time-title">{{date | date('time')}}</b-col>
<b-col class="data-title">{{date | date('date')}}</b-col>
Функция експорт
export default function dateFilter(value, format= 'datetime') {
// console.log(value);
const options = {}
if (format.includes('date')) {
options.day = 'numeric'
options.month = '2-digit'
options.year = 'numeric'
}
if (format.includes('time')) {
options.hour = '2-digit'
options.minute = '2-digit'
// options.second = '2-digit'
}
return new Intl.DateTimeFormat('uk-UK', options).format(new Date(value))
}
Ответы (1 шт):
Автор решения: Максим Вишневский
→ Ссылка
Вся логика работы Intl.DateTimeFormat хорошо описана в документации mozilla и learn javascript. Что касается форматирования, то это объемный процесс с настройкой Intl.DateTimeFormat.prototype.format. Если вы не хотите углубляться в тонкости настройки и просто работать с датами, то воспользуйтесь пакетом date-fns.
Использование фильтров в Vue 3 имеет статус deprecated, для многих момент спорный, но если планируется миграция, то переносите всё в функции хэлперы уже сейчас:
import formatDate from './filter/formatDate';
setup () {
// тут логика компонента
return {
formatDate, // далее в темплейте просто использовать как метод
}
}