Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Дата в javascript.

Павел Чалов Ученик (67), на голосовании 9 месяцев назад
С базы данных приходит дата в таком виде: "2024-01-06T11:51:37.000Z", как переделать ее в адекватный для пользователя вид? Например: "06.01.2024".
Голосование за лучший ответ
Matz Просветленный (36091) 10 месяцев назад
 const date = '2024-01-06T11:51:37.000Z'; 

console.log(`${date.slice(7, 10)}.${date.slice(5, 7)}.${date.slice(0, 5)}`);

// 06.01.2024
Вообще для этого в npm куча либ есть, data-fns например с множеством вариантов представления даты
eshth strhrtj Гуру (4089) 10 месяцев назад
 // Данные пришедшие с сервера 
let data = `{
"name": "David",
"age": 24,
"date": "2024-01-06T11:51:37.000Z"
}`;

// Преобразуем JSON в объект
let dataObj = JSON.parse(data, function(key, value){
if (key == 'date') {
return new Date(value);
} else {
return value;
}
});

// сохраняем дату в переменную
let date = dataObj.date;

// Выводим дату в удобочитаемом виде
document.write(date.toLocaleString("ru", {
year: "numeric",
month: "2-digit",
day: "2-digit",
}));
Данные с сервера приходят в виде строки JSON, прежде чем выполнять манипуляции с этими данными, необходимо преобразовать JSON в реальный объект.

Чтобы преобразовать JSON в объект для этого есть JSON.parse, первым аргументом передается данные JSON, второй аргумент может быть функцией, которая может пригодится для замены некоторых значений, например выше функция замены используется чтобы преобразовать дату из строки в объект Date.

С датами в JS лучше работать если они преобразованы в объект Date, это позволяет получать любые компоненты даты и изменять их.
Kredwi Мудрец (11172) 10 месяцев назад
Попробуй использовать библиотеку Moment.js.


 const moment = require('moment');

const date = moment('2024-01-06T11:51:37.000Z').format('DD.MM.YYYY');
console.log(date); // Вывод 06.01.2024
Похожие вопросы