[英]Does numeric date require a time-zone, when creating a new Date object?
[英]How to ignore time-zone on new Date()?
我有一个名为updateLatestDate
JavaScript函数,该函数作为对象的参数数组接收。
数组中对象的属性之一是日期类型的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
中最后一个对象的MeasureDate
值。
它看起来像这样:
var latestDate = Sat Oct 27 2012 21:10:00 GMT+0300 (Jerusalem Daylight Time)
如您所见,返回结果的时间与输入对象的时间不同。时间根据GMT更改。
但我不希望格林尼治标准时间改变时间。
理想的结果是:
var latestDate = Sat Oct 27 2012 18:10:00
任何想法如何从updateLatestDate函数返回日期时忽略时区?
正如Frz Khan指出的那样,您可以使用。 从函数返回日期时使用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')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.