2012-04-24 17 views
8

kto może napisać funkcję, aby klienci strefę czasową, zwracanej wartości jak: EDTESTIST i tak dalejJak zdobyć klientów Strefa czasowa w JavaScript?

+0

http: // stackoverflow .pl/questions/6939685/get-client-time-zone-from-browser Może być duplikatem? –

+0

Naprawdę nie chcesz takich skrótów. Jeśli otrzymasz CST, czy jest to standardowy czas w Chinach (UTC + 8), czy czas standardowy Kuba (UTC - 5)? –

Odpowiedz

11

toTimeString() metody dają razem z nazwą strefy czasowej wypróbować poniżej ...

var d=new Date(); 
var n=d.toTimeString();  

ouput 

03:41:07 GMT+0800 (PHT) or 09:43:01 EDT 

Demo

lub

Sprawdź : Automatic Timezone Detection Using JavaScript

pobieranie jstz.min.js i dodać funkcję do swojej strony html

<script language="javascript"> 
     function getTimezoneName() { 
      timezone = jstz.determine_timezone() 
      return timezone.name(); 
     } 
    </script> 
2

Korzystanie Date(). GetTimezoneOffset() i następnie zbudować tabeli mieszania z tego adresu URL timeanddate odnosić go do jeśli chcesz użyć wartości strefy czasowej.

1

Jeśli spojrzysz na wynik wywołania metody toString obiektu Date, otrzymasz wartość podobną do "Tue Apr 24 2012 23:30:54 GMT + 1000 (AUS Eastern Standard Time)". To zależy od ustawień regionalnych systemu.

Stamtąd można dopasować każdą wielką literę w nawiasach.

var paren = new Date().toString().match(/\(.+\)/); 
return paren ? paren[0].match(/([A-Z])/g).join("") : ""; 

Połów jest taki, że nie każda przeglądarka będzie zawierać nawiasowane wartości.

Jeśli kierujesz Firefoksa znaną wtyczką Java, możesz również użyć obiektu java w Javascript, aby utworzyć nowy obiekt TimeZone (java.util.TimeZone) na podstawie nazwy (np. "America/Los_Angeles"), a następnie wywołaj metodę getDisplayName, aby podać nazwę.

+0

Niestety pojawia się "Czw 11 września 2014 11:29:07 GMT + 1000 (EST)", gdy używam nowej daty(). ToString(); w Australii w Chrome. Jest to mylące ze względu na strefę czasową US EST GMT-0400. –

0

Zastosowanie jstz uzyskać nazwę Strefa czasowa:

jstz.determine().name(); 

zwraca nazwy strefy czasowej (jak 'America/New York'), które można następnie wykorzystać przy moment.js itp

offset (np z js Date obiektu) to za mało, ponieważ nie zawiera dodatkowych informacji DST (nie będziesz wiedział, czy czas musi zostać skorygowany o czas letni i kiedy).

0
  • dostać klienta strefę czasową w javascript
  • wyjście z -12: +12
  • można modyfikować poprzez zmianę wyjście na tej linii -Math.round(a/60)+':'+-(a%60); Jak -Math.round(a/60); masz // + 2

    var a = new Date().getTimezoneOffset(); 
    var res = -Math.round(a/60)+':'+-(a%60); 
    res = res < 0 ?res : '+'+res; 
    console.log(res); 
    

reference

-1

Jest to idealne rozwiązanie, aby uzyskać pełną czasową z wiejska

var a = new Date($.now());  
var regExp = /\(([^)]+)\)/;`enter code here` 
var matches = regExp.exec(a); 
alert(matches[1]); 

Alarm ten da ci moc jak indian standardowego czasu, American Standard czasu, afrykańskiego standardowy czas:

//$("#timezone option:contains(" + matches[1] + ")").attr('selected', 'selected'); 
+1

Przykro mi, ale link w Twojej odpowiedzi wygląda jak spam –

Powiązane problemy