Как пребразовать значение в строке?

как из строки 01.10.2021 18:30

получить 2021, 10, 01, 18, 30


Ответы (4 шт):

Автор решения: WalkMess

В вашем случае мы можем работать с массивом, получая "." и разделять целый кусок на отдельные части, а исходный вариант перевернуть. Потом остается просто соединить массивы и склеить их.

const str = '01.10.2021 18:30';
const dates = str.split(' ') 
.slice(0, 1) 
.join() 
.split('.') 
.reverse(); 

const times = str.split(' ')[1] 
.split(':'); 

const answer = dates.concat(times).join();
console.log(answer);

→ Ссылка
Автор решения: Dmitry

Вопрос больше состоит в том, какой тип данных на выходе вы хотите иметь. Выглядит как будто вы хотите использовать данные для создания объекта Date().

Может вам сразу создавать объект, если моя догатка верна

let a = "01.10.2021 18:30"
let dateFromString = new Date(a)
console.log(dateFromString)

если все таки нужна строка можно вручную сформатировать

let a = "01.10.2021 18:30"
let dateFromString = new Date(a)
let z = dateFromString.toISOString()
let newStringDate = z.substring(0, 4) + "," + z.substring(8, 10) + "," + z.substring(5, 7) + "," + z.substring(11, 13) + "," + z.substring(14, 16)
console.log(newStringDate)

→ Ссылка
Автор решения: Pavel Nazarian

let str = '01.10.2021 18:30';

let arr = str.split(/\D/);
[arr[0], arr[2]] = [arr[2], arr[0]];
console.log(...arr);
console.log(arr.join(', '));

→ Ссылка
Автор решения: teran

const str = "01.10.2021 18:30";

let [d,m,y, hh,mm] = str.split(/[.\s:]/);

console.log(y,m,d,hh,mm);

→ Ссылка