我正在给出一段时间并转换为J SON,但是J SON对象返回的时间比用户时间段小15。如何在J SON对象中获得相同的时间段。
示例:
var starttime = 2015-05-26T00:00:00;var jsonconvert= new Date(starttime).toJSON();
我得到“2015-05-25T 18:30:00.000Z”的输出
如何获得我给出的时间输出?
答案 0 :(得分:0)
toJSON()方法返回UTC日期,但Date()期望"本地日期" 。因此,有两种方法可以将UTC中的日期提供给Date()构造函数,或者稍后将时区添加到日期对象中
第一种方式(使用Date.UTC设置UTC日期而非本地日期)
var starttime = "2015-05-26T00:00:00";
var date=new Date(starttime); //create a local date
var date= new Date(Date.UTC(date.getFullYear(),date.getMonth(),date.getDate(),date.getHours(),date.getMinutes(),date.getSeconds()));
//this is UTC date set using Date.UTC
jsonconvert=date.toJSON(); //returns the UTC Date
alert(jsonconvert)
第二种方式(将TimeZone添加到日期,以便在toJSON期间它将减去timeZone并返回正确的日期)
var starttime = "2015-05-26T00:00:00";
var date=new Date(starttime);
date.setTime( date.getTime() - date.getTimezoneOffset()*60*1000 );//Add TimeZone to Local Date
jsonconvert=date.toJSON()
alert(jsonconvert)
PS :