Как игнорировать часовой пояс при новой дате ()?

У меня есть функция JavaScript называется updateLatestDate которые получают в качестве параметра массив объектов.

Одним из свойств объекта в массиве является MeasureDate свойство типа даты.

Функция updateLatestDate возвращает самую последнюю дату, существующую в массиве.

Вот функция:

function updateLatestDate(sensorsData) {
    return new Date(Math.max.apply(null, sensorsData.map(function (e) {
        return new Date(e.MeasureDate);
    })));
}

А вот пример параметра, который получает функция:

[{
    "Address": 54,
    "AlertType": 1,
    "Area": "North",
    "MeasureDate": "2009-11-27T18:10:00",
    "MeasureValue": -1
  },
  {
    "Address": 26,
    "AlertType": 1,
    "Area": "West",
    "MeasureDate": "2010-15-27T15:15:00",
    "MeasureValue": -1
  },
  {
    "Address": 25,
    "AlertType": 1,
    "Area": "North",
    "MeasureDate": "2012-10-27T18:10:00",
    "MeasureValue": -1
  }]

Функция updateLatestDate вернусь MeasureDate значение последнего объекта в массиве.

И это будет выглядеть так:

 var latestDate = Sat Oct 27 2012 21:10:00 GMT+0300 (Jerusalem Daylight Time)

Как видите, время возвращаемого результата отличается от времени ввода объекта. Время изменилось по Гринвичу.

Но я не хочу, чтобы время менялось по Гринвичу.

Желаемый результат:

 var latestDate = Sat Oct 27 2012 18:10:00 

Любая идея, как я могу игнорировать часовой пояс, когда дата возвращается из функции updateLatestDate?

3 ответа

Решение

Как указал Фрз Хан, вы можете использовать. Функция toISOString() при возврате даты из вашей функции, но если вы ищете формат UTC, используйте .toUTCString (), она выдаст что-то вроде Mon, 18 Apr 2016 18:09:32 GMT

function updateLatestDate(sensorsData) {
    return new Date(Math.max.apply(null, sensorsData.map(function (e) {
        return new Date(e.MeasureDate).toUTCString();
    })));
}

Функция Date.toISOString() - это то, что вам нужно попробовать это:

var d = new Date("2012-10-27T18:10:00");
d.toISOString();

результат:

"2012-10-27T18:10:00.000Z"

Если вы используете момент, он будет

moment('Sat Oct 27 2012 21:10:00 GMT+0300', 'ddd MMM DD DDDD HH:mm:SS [GMT]ZZ').format('ddd MMM DD YYYY HH:mm:SS')
Другие вопросы по тегам