2012-04-24 29 views
8

que puede escribir una función para obtener clientes zona de tiempo, como valor de retorno: EDTESTIST y así sucesivamenteCómo obtener clientes Zona horaria en JavaScript?

+0

http: // stackoverflow .com/questions/6939685/get-client-time-zone-from-browser ¿Puede ser un duplicado? –

+0

Realmente no quieres abreviaturas como esa. Si obtiene CST, ¿es hora estándar de China (UTC + 8) o hora estándar de Cuba (UTC - 5)? –

Respuesta

11

toTimeString() método dará tiempo con el nombre de zona horaria tratar a continuación ...

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

ouput 

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

Demo

o

Comprobar : Automatic Timezone Detection Using JavaScript

descarga jstz.min.js y agregar una función a su página html

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

utilizar la fecha(). GetTimezoneOffset() y luego construir una tabla hash desde esta dirección timeanddate relacionarlo con si quieres usar el valor de la zona horaria.

1

Si observa el resultado de llamar al método toString de un objeto Date, obtendrá un valor que es algo así como "Mar 24 abr. 2012 23:30:54 GMT + 1000 (AUS Eastern Standard Time)". Esto dependerá de la configuración regional de su sistema.

A partir de ahí puede hacer coincidir cada letra mayúscula entre paréntesis.

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

El problema es que no todos los navegadores incluirán los valores entre paréntesis.

Si se dirige a Firefox con un complemento Java conocido, también puede explotar el objeto java en Javascript para crear un nuevo objeto TimeZone (java.util.TimeZone) basado en un nombre (por ejemplo, "América/Los_Angeles"), luego llame al método getDisplayName para darle el nombre.

+0

Lamentablemente me sale "Jue 11 Sep 2014 11:29:07 GMT + 1000 (EST)" cuando uso nueva Fecha(). ToString(); en Australia en Chrome. Esto es confuso debido a la zona horaria GMT-0400 de EST EE. UU. –

0

Uso jstz para obtener el nombre de zona horaria:

jstz.determine().name(); 

Devuelve los nombres de zona horaria (como 'America/New York') que luego se puede utilizar con moment.js etc.

un desplazamiento (por ejemplo, de un objeto Date js) no es suficiente, porque no contiene la información adicional del horario de verano (no sabrá si el horario debe ajustarse para el horario de verano y cuándo).

0
  • consiguen zona horaria del cliente en javascript
  • salida de -12: 12
  • se puede modificar la salida por el cambio en esta línea -Math.round(a/60)+':'+-(a%60); Como -Math.round(a/60); se obtiene // + 2

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

reference

-1

Esta es la respuesta perfecta para conseguir plena zona horaria del país-

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

esta alerta le dará una salida como hora estándar indio, americano tiempo estándar, africano tiempo estándar:

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

Lo siento pero el enlace en su respuesta parece un spam –

Cuestiones relacionadas