Строка формата на сегодняшний день Vuejs

Я получаю из API строку даты в следующем формате: DD_MM_YYYY_hh_mm__ss

Я хочу отобразить строку в следующем формате: ДД/ММ/ГГГГ чч:мм:сс

Как я могу этого добиться?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
55
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

В одну сторону:

const str = '18_03_2022_12_21_34'
// to string
const res = str.split('_')
const r = res.slice(0, 3).join('/') + ' ' + res.slice(-3).join(':')
console.info(r)
// or to date
console.info(new Date(res.slice(0, 3).join('/').split('/').reverse().join('/') + ' ' + res.slice(-3).join(':')))
Ответ принят как подходящий

Вы можете заменить последовательности подчеркивания соответствующими символами в зависимости от их положения во входной строке:

function convertDate(date) {
    return date.replace(/_+/g, (_, n) => (n < 10) ? "/" : (n > 10) ? ":" : " ");
}

console.info(convertDate("DD_MM_YYYY_hh_mm__ss"));

Или немного проще:

function convertDate(date) {
    let n = 0; return date.replace(/_+/g, () => "// ::"[n++]);
}

console.info(convertDate("DD_MM_YYYY_hh_mm__ss"));

Vue-фильтр

Код:

Vue.filter('stringTodateTime', function ( dateTimeString ) {
    if (!dateTimeString) return ''
    return dateTimeString.replace(/_+/g, (_, n) => (n < 10) ? "/" : (n > 10) ? ":" : " ");
})

Использование:

{{ 12_04_2021_12_59_34 | stringTodateTime }}

Другие вопросы по теме