2012-01-30 13 views
7

Mam aplikację internetową, która ma dynamiczny kalendarz javascript, który pozwala użytkownikom ustawiać zdarzenia dla danych i czasu. Muszę przesyłać powiadomienia użytkownikom, dlatego muszę zmienić datę i strefę czasową, które wprowadzili, na Eastern Standard Time, aby moje powiadomienia były wysyłane we właściwym czasie.Jak przekonwertować datetime ze strefy czasowej użytkowników na EST w javascript

Chciałbym zrobić to w javascript, więc gdy wartość czasu danych dociera do php, to jest w odpowiednim formacie, zanim zostanie dodany do bazy danych.

Podsumowując, muszę przekonwertować datatime javascript i strefę czasową, które otrzymuję, przechwytując datatime użytkowników, jako pełną datę UTC, do strefy czasowej moich serwerów, która jest EST - Nowy Jork.

Każda pomoc lub wskazówki w tej sprawie byłyby bardzo mile widziane. Thanks :)

Odpowiedz

15

Pl sprawdzić ten skrypt

function convertToServerTimeZone(){ 

    //EST 
    offset = -5.0 

    clientDate = new Date(); 
    utc = clientDate.getTime() + (clientDate.getTimezoneOffset() * 60000); 

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

    alert (serverDate.toLocaleString()); 


} 
+0

To działa! Jak mogę przekonwertować czas z powrotem na strefę czasową użytkowników, aby wyświetlić datetime na stronie? –

+0

Wszystko w offsecie. Można użyć przesunięcia strefy czasowej użytkownika i użyć funkcji dostępnych w obiekcie daty, aby renderować w określonym formacie lokalnym użytkownika. – user47900

+0

przykładowy kod ... proszę jeszcze raz! :) –

0

chciałbym zwrócić strefy czasowej EST przesunięcie na stronę gdy jesteś czyniąc go (za pośrednictwem PHP), a następnie chwycić czas UTC na kliencie i offset w zależności od kwoty, którą narysowałeś. W przeciwnym razie, jeśli serwer kiedykolwiek przeniesie strefy czasowe, twoja strona będzie nagle zgłaszać niewłaściwy czas.

Po prostu zrobiłem to ostatnio i odkryłem, że najprostszym sposobem na obsłużenie tego jest faktyczne użycie mySQL (zakładam, że to twój DB), i pozwól IT przekonwertować strefę czasową dla ciebie podczas gdy wchodzisz Data stempla. Jeśli nie obawiasz się, że jest to zbyt pracochłonne i starasz się absolutnie ograniczyć pracę, jaką wykonuje twoja db, wolałbym pójść tą drogą, niż nie próbować robić ręcznych konwersji TZ w JS.

Powiązane problemy