2015-05-23 5 views
1

Я даю время и преобразовываю в J SON, но объект J SON возвращает время 15 меньше, чем пользовательский период времени. Как получить тот же период времени в объекте J SON.Как преобразовать время в формат Json с заданным пользователем временем?

Пример:

var starttime = 2015-05-26T00:00:00;var jsonconvert= new Date(starttime).toJSON(); 

я получаю Ouput из "2015-05-25T 18: 30: 00.000Z"

Как получить вывод времени, которое я дал?

ответ

0

toJSON() метод возвращает дату UTC, но Date() ожидает «Local Date». Таким образом, есть два пути либо вы даете дату в формате UTC к Date() конструктор или добавить свой часовой пояс для объекта Date позже

Первый путь (Установка даты UTC вместо локальной даты с помощью Date.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:

  1. date.getTimezoneOffset() вычитается, как это вернуть отрицательное значение, если время опережает UTC и наоборот
  2. Вы также должны добавить Z в строку, чтобы сделать его исправить UTC datetime string
+0

Спасибо Ankit, но проблема в solv в IE, но не в Google Chrome. Перед добавлением этого шага в google chrome он дает пользователю заданное время, но в IE он дает мне время UTC. после добавления его начала наоборот –

+0

@AravindE Вам нужно добавить Z после вашей даты, чтобы получить правильную строку datetime – bugwheels94

+0

@ Ankit Спасибо, я сделал это, у меня есть две даты: первая - дата начала и время начала, другое - дата окончания и конец время, согласно вашей инструкции, дата начала и время ввода - это тип ввода пользователя. но мои конечные дата и время, кажется, отстают, (он идет -15 часов назад от времени ввода пользователя). Не могли бы вы обновить и дать мне пример через скрипку. –

Смежные вопросы