2012-11-29 18 views
34

Va bene, diciamo JSON stringa parse data UTC, come di seguito:Javascript per convertire UTC in ora locale

2012-11-29 17:00:34 UTC 

Ora, se voglio convertire questa data UTC alla mia ora locale, come posso fare questo?

Grazie per la risposta

=====

Allora, come faccio a formattare a qualcos'altro come 'yyyy-MM-dd hh: mm: ss z'?

Questo date.toString('yyyy-MM-dd HH:mm:ss z'); non funziona:/

+1

'new Date (" 2012-11-29 17:00:34 UTC ")' sarà nell'ora locale di il cliente che sta usando la pagina – Esailija

+0

Puoi dividerlo in array usando spazi o simboli. Supponiamo di fare .split ("") e array con data e ora e "utc" sarà formato. quindi suddividilo nuovamente in questo modo .split ("-") e dividi l'ora come questa .split (":") e così via. – yashas123

risposta

44

Prova:

var date = new Date('2012-11-29 17:00:34 UTC'); 
date.toString(); 
+0

date.toString ('aaaa-MM-gg HH: mm: ss z') non funziona mai:/ – lannyboy

+8

bene, ho provato IE e Firefox, sono tutti NAN! Data non valida? – lannyboy

+0

usando la libreria date.js [questo funziona] (http://jsfiddle.net/brmr3623/7/) per il formato data aaaa-MM-gg HH: mm: ss –

1

questo dovrebbe funzionare

var date = new Date('2012-11-29 17:00:34 UTC'); 
date.toString() 
+0

come formattare la data locale a 'aaaa-MM-gg HH: mm: ss z'? – lannyboy

29
var offset = new Date().getTimezoneOffset(); 

offset sarà l'intervallo in minuti da ora locale a UTC. Per ottenere l'ora locale da una data UTC, devi quindi sottrarre i minuti dalla tua data.

utc_date.setMinutes(utc_date.getMinutes() - offset); 
+5

Penso che dovrebbe essere sottrarre l'offset, non aggiungere l'offset. – OnResolve

+1

+ è appropriato perché se il fuso orario è inferiore a 1 ora, il valore restituito sarà -60. –

+3

@OnResolve Surabhi è corretto usando '+'. Quando si usa la data.getTimezoneOffset', _ "un valore di ritorno negativo da getTimezoneOffset() indica che la posizione corrente è prima di UTC, mentre un valore positivo indica che la posizione è dietro l'UTC." _ ([** Repubblica tecnologica **] (http://www.techrepublic.com/article/convert-the-local-time-to-another-time-zone-with-this-javascript/)). – WebWanderer

1

Per formattare la data di provare la seguente funzione:

var d = new Date(); 
var fromatted = d.toLocaleFormat("%d.%m.%Y %H:%M (%a)"); 

Ma il rovescio della medaglia è che si tratta di un non-standard funzione , che non sta funzionando in Chrome, ma lavorare in FF (afaik).

Chris

-6
/* 
* convert server time to local time 
* simbu 
*/ 
function convertTime(serverdate) { 
    var date = new Date(serverdate); 
    // convert to utc time 
    var toutc = date.toUTCString(); 
    //convert to local time 
    var locdat = new Date(toutc + " UTC"); 
    return locdat; 
} 
1

Le soluzioni di cui sopra sono a destra, ma potrebbe andare in crash in Firefox e Safari! ed è quello che sta cercando di risolvere webility.js. Controlla la funzione toUTC, funziona sulla maggior parte dei brower principali e restituisce l'ora in formato ISO

Problemi correlati