Форматирование ISODate от Mongodb
В Mongodb я сохраняю дату и время в формате ISODate.
Что выглядит так:
ISODate("2012-07-14T01:00:00+01:00")
Используя nodejs/javascript, как я могу отобразить компонент времени, чтобы получить что-то вроде этого
Time : 01:00
Я использую momentjs, чтобы сделать это проще, но из того, что я могу сказать, что momentjs, похоже, поддерживает формат ISODate.
Спасибо за помощь.
Ответы
Ответ 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);