2013-05-21 2 views
0

Пытается преобразовать строку даты в HST, но это не сработает.Как конвертировать дату/время в HST в JavaScript?

Соответствующий код:

var MINUTES_IN_MILLI = 60000, 
    HOURS_IN_MILLI = 3600000, 
    UTC2HST_OFFSET = 10, 
    date1 = new Date('2013-05-31T00:00:00Z'), 
    utc1 = date1.getTime() + (date1.getTimezoneOffset() * MINUTES_IN_MILLI), 
    hstDate1 = utc1 - (HOURS_IN_MILLI * UTC2HST_OFFSET); 
+0

Что "не работает" об этом? И почему вы ставите все в одном заявлении запятыми? Что такое «HST»? Я мог бы догадаться, что вы на Гавайях, но я могу предположить, что это неправильно. –

+0

, похоже, не дает мне времени в HST (Гавайи). –

+0

Вам необходимо предоставить более подробную информацию. Этот код на самом деле не дает вам ничего, потому что вы просто устанавливаете некоторые переменные. Результат 'hstDate1' будет числом, а не датой. Просьба предоставить полный образец. Покажите, что вы получаете, и что вы ожидаете. Кроме того, вы на самом деле * на Гавайях и ищете местное время? Что делать, если пользователь находится где-то в другом месте - должен ли он показывать время Гавайев до сих пор или собственное время? –

ответ

0

Я выйду на конечности и сказать, что проблема заключается в том, что вы вносите как Известные фиксированное смещение (10 часов), и производное смещение от getTimezoneOffset().

Вы, вероятно, не хотят:

utc1 = date1.getTime() + (date1.getTimezoneOffset() * MINUTES_IN_MILLI) 

От имени переменной вы дали, я предполагаю, что вы хотите UTC метку времени, так что просто сделать:

utc1 = date1.getTime() 

Но без дополнительной информации, как Я просил в комментариях, я не могу быть уверен, что это действительно то, что вам нужно. Пожалуйста, обновите свой вопрос, и я поправлю этот ответ по мере необходимости.

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