Как изменить формат даты в mongodb

Я создал коллекцию mongodb, используя nodejs, как показано ниже:

var mongoose = require('mongoose');
var TTTUsersSchema = new mongoose.Schema({
   username: String,
   password:String,
   active: Boolean,
   created_at: { type: Date, default: Date.now },
   updated_at: { type: Date, default: Date.now },
});

module.exports = mongoose.model('Users', TTTUsersSchema);

С момента создания записи дата по умолчанию сохраняется как вторник, 13 ноября 2018 г. 20:53:47 GMT+0000 (стандартное время по Гринвичу), поэтому, когда я получаю это поле, оно отображается в HTML, как указано выше. Я хочу отображать его в формате ДД/ММ/ГГ ЧЧ:ММ формат.

Где мне нужно изменить? На уровне пользовательского интерфейса HTML? или на уровне коллекции Mondgodb.

Пожалуйста помоги.

MongoDB не хранит даты в виде строк (проверьте свою коллекцию с помощью клиента просмотра mongodb). Как вы получаете доступ к полю даты, чтобы получить данную строку? Вы уверены, что видите не просто строковый объект Date?

Stefan Becker 31.01.2019 22:05

F.ex. из консоли Firefox JS: new Date().toString() -> "Thu Jan 31 2019 23:10:09 GMT+0200 (EET)"

Stefan Becker 31.01.2019 22:11
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
2
5 924
3

Ответы 3

Вам нужно отформатировать дату и время на уровне просмотра.

  • один из вариантов - отформатировать на вашем контроллере, если вы используете MVC, или на уровне, создающем модель представления.
  • другой вариант - отформатировать в html с помощью javascript. Возможно, вам придется использовать lib, например moment.js.

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

Только когда ты

  1. представить отметку времени пользователю в виде строки или
  2. разобрать строку времени от пользователя

затем вы делаете преобразования.

К сожалению, объект JavaScript Date сильно ограничен, поэтому я бы предложил использовать такой пакет, как Момент.js, который предлагает множество возможностей форматирования:

const moment = require('moment');

// date is a Date object you got, e.g. from MongoDB
const time = moment(date);
console.info(time.format("DD/MM/YY HH:mm"));

Спасибо, Стефан. Мой вопрос теперь, где написать этот код? При отправке результата запроса на html-страницу? или в файле Schema.js мой код выглядит следующим образом: var emp = require('../model/Employee'); emp.findone({_id: req.params.id}).exec(функция (ошибка, сотрудник) { res.render('../views/emp/show', {emp: сотрудник}); };

Parag Shah 01.02.2019 11:24

Да, этот код должен быть включен в код, отображающий вашу HTML-страницу.

Stefan Becker 01.02.2019 11:26

Предположим, что текущий день вторник, 13 ноября 2018 г., 20:53:47 GMT+0000
. Используйте .toDateString()

var date = new Date();
console.info(date.toDateString());

Он будет отображать:

Tue Nov 13 2018

Пожалуйста, используйте форматирование кода.

shreyasm-dev 30.11.2020 00:21

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