2016-03-03 5 views
2

Я ищу функцию javascript для преобразования UTC datetime в формат даты и времени проходящего часового пояса. Я должен передать часовой пояс в зависимости от местоположения пользователя. Мне не разрешено использовать любую библиотеку дат.JavaScript: Преобразование UTC datetime в прохождение timezone's datetime

мой UTC DateTime строки: "2016-04-10 09:00:00.0"

Передача Timezone: EST

Ожидаемое Output1: "April 10,2016"

Ожидаемое Выход2: 04 AM EST

Вы можете дать некоторое представление о функции Js для того чтобы достигнуть моего требование?

P.S: Я не могу использовать стороннюю библиотеку дат для этой работы.

+1

Вы должны показать, что вы пробовали, это не бесплатный сервис кодирования. Если это домашнее задание или задание, вы должны это сказать. Ваша строка не соответствует ни одному стандарту, вам нужно разобрать ее вручную (2 строки кода). При настройке на определенный часовой пояс просто требуется изменить время на соответствующую сумму. Здесь много вопросов и ответов о том, как это сделать. Найдите, попробуйте что-нибудь, снова опубликуйте, если это не сработает. – RobG

ответ

0

Вы можете создать функцию, как показано ниже, чтобы преобразовать время UTC в данной временной зоне смещения:

//function to calculate local time 
 
function calcTime(datestring, city, offset) { 
 

 
    d = new Date(datestring); 
 

 
    utc = d.getTime() + (d.getTimezoneOffset() * 60000); 
 

 
    nd = new Date(utc + (3600000 * offset)); 
 

 
    var options = {} 
 
    // an application may want to use UTC and make that visible 
 
    options.timeZone = 'America/' + city; 
 
    options.timeZoneName = 'short'; 
 

 
    return nd.toLocaleString('en', options) 
 

 

 
} 
 

 

 
document.write('Local time on server: 2016-04-10T09:00:00' + '<br>') 
 
document.write('Local time in EST/EDT:' + calcTime('2016-04-10T09:00:00', 'New_York', '-5.0'));

Если у вас есть только для поддержки различных временных зон в США, вы может создать таблицу поиска, соответствующую смещению часового пояса к правильному городу

Eastern ........... America/New_York 
Central ........... America/Chicago 
Mountain .......... America/Denver 
Mountain no DST ... America/Phoenix 
Pacific ........... America/Los_Angeles 
Alaska ............ America/Anchorage 
Hawaii ............ America/Adak 
Hawaii no DST ..... Pacific/Honolulu 

Как вы можете видеть логику быстро ly становится сложным и поэтому лучше использовать внешние библиотеки, где это возможно.

+0

Это не работает с firefox и т. Д. – user5970552

+0

Я получаю Недействительную дату как ответ – user5970552

+0

Я исправил для IE, кажется, что Chrome более мягкий с форматом даты – Jaco

0

я использую это время управление, попробуйте, может быть, ваши вы ищете этого

Moment.js

+0

Это не ответ, это должен быть комментарий. OP также заявила, что библиотека не может использоваться. – RobG

+0

Хорошо, извините мужчин, я думаю, что еще –