2011-07-27 9 views
5

que estoy tratando de conseguir el LocaleDateString y la LocaleTimeString, que eso sería toLocaleString() pero LocaleString le da GMT + 0100 (GMT horario) la que wouldn No es para ser mostrado.Obtener cadena de fecha local y cadena de tiempo

¿Puedo usar algo como:

timestamp = (new Date()).toLocaleDateString()+toLocaleTimeString(); 

Muchas gracias

+0

Mejor formatearlo usted mismo. – RobG

+0

Si es posible, puedo hacerlo, ¿por qué debería formatearlo? Gracias – jQuerybeast

+2

Oh, entonces "¿cómo formateo una fecha de javascript?" Sería un mejor tema. Kennebec tiene tu respuesta. :-) – RobG

Respuesta

13

Puede utilizar la cadena de fecha local tal como está, solo toque las horas, los minutos y los segundos.

Este ejemplo rellena un solo dígito con los primeros 0 y ajusta las horas para am/pm.

function timenow(){ 
    var now= new Date(), 
    ampm= 'am', 
    h= now.getHours(), 
    m= now.getMinutes(), 
    s= now.getSeconds(); 
    if(h>= 12){ 
     if(h>12) h -= 12; 
     ampm= 'pm'; 
    } 

    if(m<10) m= '0'+m; 
    if(s<10) s= '0'+s; 
    return now.toLocaleDateString()+ ' ' + h + ':' + m + ':' + s + ' ' + ampm; 
} 
alert(timenow()); 
+0

Esto es lo que estaba buscando. Muchas gracias – jQuerybeast

3

Si se construye la cadena utilizando métodos de vainilla, lo hará configuración regional (y TZ) la conversión automáticamente.

E.g.

var dNow = new Date(); 
var s = dNow.getMonth() + '/' + dNow.getDate() + '/' + dNow.getFullYear() + ' ' + dNow.getHours() + ':' + dNow.getMinutes(); 
+1

Gracias señor. Prefiero obtener la fecha ya que el Reino Unido o EE. UU. Depende del usuario. Por lo tanto, en lugar de 27/06/2011 podrían usarlo como 27/6/2011, por lo que recomendaría dNow.toLocaleDateString() + '' + dNow.getHours() + ':' + dNow.getMinutes(); ? – jQuerybeast

+0

En ese caso, comience con una llamada directa aLocaleString() y realice la regexificación de los resultados para eliminar los componentes no deseados o aislar los que desee. – Tom

Cuestiones relacionadas