一尘不染

javascript toISOString()忽略时区偏移[重复]

javascript

我正在尝试将Twitter datetime转换为本地iso-string(对于prettyDate)已有2天了。我只是不正确的当地时间。

即时通讯使用以下功能:

function getLocalISOTime(twDate) {
    var d = new Date(twDate);
    var utcd = Date.UTC(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(),
        d.getMinutes(), d.getSeconds(), d.getMilliseconds());

    // obtain local UTC offset and convert to msec
    localOffset = d.getTimezoneOffset() * 60000;
    var newdate = new Date(utcd + localOffset);
    return newdate.toISOString().replace(".000", "");
}

在newdate中一切正常,但是toISOString()再次将其返回到原始时间…有人可以帮助我从Twitterdate中获取iso中的本地时间,格式为:Thu,31May 2012 08:33:41 +0000


阅读 584

收藏
2020-05-01

共1个答案

一尘不染

moment.js 很棒,但是有时候您不想为简单的事情拉很多依赖。

以下内容也适用:

var tzoffset = (new Date()).getTimezoneOffset() * 60000; //offset in milliseconds
var localISOTime = (new Date(Date.now() - tzoffset)).toISOString().slice(0, -1);
// => '2015-01-26T06:40:36.181'

slice(0, -1)摆脱了拖尾的Z代表祖鲁时区,可以通过自己的所取代。

2020-05-01