9

who can write a function to get clients Time zone,return value like:EDT EST IST and so on

artwl
  • 3,302
  • 5
  • 34
  • 52
  • http://stackoverflow.com/questions/6939685/get-client-time-zone-from-browser May be a duplicate? – Sandeep Nair Apr 24 '12 at 13:30
  • You really don't want abbreviations like that. If you get CST, is it China Standard Time (UTC + 8), or Cuba Standard Time (UTC - 5)? – Dagg Nabbit Apr 24 '12 at 13:33

6 Answers6

11

toTimeString() method give time with the timezone name try out below...

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

ouput

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

Demo

or

Check : Automatic Timezone Detection Using JavaScript

download jstz.min.js and add a function to your html page

    <script language="javascript">
        function getTimezoneName() {
            timezone = jstz.determine_timezone()
            return timezone.name();
        }
    </script>
UdayKiran Pulipati
  • 6,381
  • 7
  • 63
  • 89
Pranay Rana
  • 170,430
  • 35
  • 234
  • 261
2

Use the Date().getTimezoneOffset() function and then build a hash table from this URL timeanddate to relate it to if you want to use the time zone value.

UdayKiran Pulipati
  • 6,381
  • 7
  • 63
  • 89
vipergtsrz
  • 1,031
  • 1
  • 12
  • 17
1

If you look at the result of calling the toString method of a Date object, you'll get a value that's something like "Tue Apr 24 2012 23:30:54 GMT+1000 (AUS Eastern Standard Time)". This will depend on what your system locale is set to.

From there you can match each capital letter within the parentheses.

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

The catch is that not every browser will include the parenthesised values.

If you're targeting Firefox with a known Java plugin, you can also exploit the java object in Javascript to create a new TimeZone (java.util.TimeZone) object based on a name (eg. "America/Los_Angeles"), then call the getDisplayName method to give you the name.

daniel
  • 1,126
  • 1
  • 13
  • 20
  • Unfortunately I get "Thu Sep 11 2014 11:29:07 GMT+1000 (EST)" when I use new Date().toString(); in Australia in Chrome. This is confusing due to the US EST time zone GMT-0400. – Chris Gunawardena Sep 11 '14 at 01:32
0

Use jstz to get the timezone name:

jstz.determine().name();

It returns timezone names (like 'America/New York') which you can then use with moment.js etc.

An offset (eg from a js Date object) is not enough, because it does not carry the additional DST information (you won't know whether the time needs to be adjusted for Daylight Savings and when).

btk
  • 3,050
  • 2
  • 28
  • 29
0
  • get client time zone in javascript
  • output from -12 : +12
  • you can modify the output by change on this line -Math.round(a/60)+':'+-(a%60); Like -Math.round(a/60); you get //+2

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

reference

PEHLAJ
  • 9,590
  • 9
  • 39
  • 51
Ayman Elshehawy
  • 1,611
  • 16
  • 14
-1

This is the perfect answer to get full timezone of country-

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

this alert will give you output like indian standard time,american standard time,african standard time:

//$("#timezone option:contains(" + matches[1] + ")").attr('selected', 'selected');
Stephen Rauch
  • 44,696
  • 30
  • 102
  • 125