我试图将Twitter日期时间转换为本地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获取本地时间吗: 2012年5月31日星期四08:33:41 +0000


当前回答

使用moment.js,你可以使用toISOString的keepOffset参数:

toISOString (keepOffset ?: boolean):字符串;

时刻().toISOString(真正的)

其他回答

使用moment.js,你可以使用toISOString的keepOffset参数:

toISOString (keepOffset ?: boolean):字符串;

时刻().toISOString(真正的)

得到当前的日期和时间会很有帮助。

var date=new Date();
  var today=new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).toISOString().replace(/T/, ' ').replace(/\..+/, '');  

Moment js的解是

var d = new Date(new Date().setHours(0,0,0,0));
m.add(m.utcOffset(), 'm')
m.toDate().toISOString()
// output "2019-07-18T00:00:00.000Z"

我不使用moment的解决方案是将其转换为时间戳,添加时区偏移量,然后转换回日期对象,然后运行toISOString()

var date = new Date(); // Or the date you'd like converted.
var isoDateTime = new Date(date.getTime() - (date.getTimezoneOffset() * 60000)).toISOString();

js很棒,但有时你不想为简单的事情拉出大量的依赖关系。

以下方法也可以:

var tz胶印=(新日期)。//胶印成毫秒 var localISOTime =(新日期。slice (0, - 1); log(localISOTime)控制台// => 2015-01-26 t06:40:36.181

切片(0,-1)去掉了后面代表Zulu时区的Z,可以用你自己的时区代替。