Подтвердить что ты не робот

Форматирование ISODate от Mongodb

В Mongodb я сохраняю дату и время в формате ISODate.

Что выглядит так:

ISODate("2012-07-14T01:00:00+01:00")

Используя nodejs/javascript, как я могу отобразить компонент времени, чтобы получить что-то вроде этого

Time : 01:00

Я использую momentjs, чтобы сделать это проще, но из того, что я могу сказать, что momentjs, похоже, поддерживает формат ISODate.

Спасибо за помощь.

4b9b3361

Ответ 1

Объект JavaScript Date поддерживает формат даты ISO, поэтому, если у вас есть доступ к строке даты, вы можете сделать что-то вроде этого:

> foo = new Date("2012-07-14T01:00:00+01:00")
Sat, 14 Jul 2012 00:00:00 GMT
> foo.toTimeString()
'17:00:00 GMT-0700 (MST)'

Если вам нужна строка времени без секунд и часовой пояс, вы можете вызвать методы getHours() и getMinutes() для объекта Date и отформатировать время самостоятельно.

Ответ 2

MongoDB ISODate() - это просто вспомогательная функция, которая обертывает объект даты JavaScript и упрощает работу со строками даты ISO.

Вы все равно можете использовать все те же методы, что и при работе с обычной JS Date, например:

ISODate("2012-07-14T01:00:00+01:00").toLocaleTimeString()

// Note that getHours() and getMinutes() do not include leading 0s for single digit #s
ISODate("2012-07-14T01:00:00+01:00").getHours()
ISODate("2012-07-14T01:00:00+01:00").getMinutes()

Ответ 3

вы можете использовать запрос mongo как это yearMonthDayhms: {$ dateToString: {формат: "% Y-% m-% d-% H-% M-% S", дата: {$ subtract: [ "$ cdt", 14400000]}}}

HourMinute: {$ dateToString: {формат: "% H-% M-% S", дата: {$ subtract: [ "$ cdt", 14400000]}}}

введите описание изображения здесь

Ответ 4

// from MongoDate object to Javascript Date object

var MongoDate = {sec: 1493016016, usec: 650000};
var dt = new Date("1970-01-01T00:00:00+00:00");
    dt.setSeconds(MongoDate.sec);