繁体   English   中英

如何忽略新Date()上的时区?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM