Как игнорировать часовой пояс при новой дате ()?
У меня есть функция 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')