如何在 new Date() 上忽略时区?
How to ignore time-zone on new Date()?
我有一个名为 updateLatestDate
的 JavaScript 函数,它接收对象的参数数组。
数组中对象的属性之一是日期类型MeasureDate
属性。
函数updateLatestDate
returns 数组中存在的最新日期。
函数如下:
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
将 return MeasureDate
数组中最后一个对象的值。
它看起来像这样:
var latestDate = Sat Oct 27 2012 21:10:00 GMT+0300 (Jerusalem Daylight Time)
如您所见,returned 结果的时间与输入的时间不同 object.The 时间根据 GMT 更改。
但我不希望时间根据 GMT 更改。
期望的结果是:
var latestDate = Sat Oct 27 2012 18:10:00
知道如何在日期 return 从 updateLatestDate 函数编辑时忽略时区吗?
如果你使用 moment 它将是
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')
Date.toISOString()函数就是你所需要的
试试这个:
var d = new Date("2012-10-27T18:10:00");
d.toISOString();
结果:
"2012-10-27T18:10:00.000Z"
正如 Frz Khan 指出的那样,您可以使用 .toISOString() function when returning the date from your function, but if you're seeking the UTC format, use the .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();
})));
}
我有一个名为 updateLatestDate
的 JavaScript 函数,它接收对象的参数数组。
数组中对象的属性之一是日期类型MeasureDate
属性。
函数updateLatestDate
returns 数组中存在的最新日期。
函数如下:
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
将 return MeasureDate
数组中最后一个对象的值。
它看起来像这样:
var latestDate = Sat Oct 27 2012 21:10:00 GMT+0300 (Jerusalem Daylight Time)
如您所见,returned 结果的时间与输入的时间不同 object.The 时间根据 GMT 更改。
但我不希望时间根据 GMT 更改。
期望的结果是:
var latestDate = Sat Oct 27 2012 18:10:00
知道如何在日期 return 从 updateLatestDate 函数编辑时忽略时区吗?
如果你使用 moment 它将是
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')
Date.toISOString()函数就是你所需要的 试试这个:
var d = new Date("2012-10-27T18:10:00");
d.toISOString();
结果:
"2012-10-27T18:10:00.000Z"
正如 Frz Khan 指出的那样,您可以使用 .toISOString() function when returning the date from your function, but if you're seeking the UTC format, use the .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();
})));
}