2009-04-27 14 views
6

Nella mia javascript iam utilizzando la funzione GetHour e GetMinutes.Per ad esempio: Current Time è 2: 03.Se in questo caso utilizzo GetHour(), restituisce 2.Instead ho bisogno di 02. Qualcuno può aiutare?formato ora in javascript

risposta

6
var hour = GetHour() < 10 ? '0' + GetHour() : GetHour(); 
+1

Si potrebbe estratto la parte ripetuta nel tuo vero e false espressioni: var hour = (GetHour() <10? '0': '') + GetHour() –

+0

Non c'è motivo di chiamare la funzione due volte. –

+0

Bene, il codice che stavo commentando lo ha già chiamato tre volte! A meno che le chiamate a GetHour() non siano un problema di prestazioni, non c'è niente di sbagliato nel chiamare più volte un metodo per esprimere il codice in modo più conciso. –

0

Non c'è alcuna funzione. utilizzare la seguente per aggiungere uno 0:

var date = new Date(); 
var hours = new String(date.getHours()); 

if (hours.length == 1) 
{ 
    hours = "0" + hours; 
} 
+1

Questo non aggiungerà mai uno zero finale. "length" non è una proprietà valida sul valore restituito da 'getHours()', quindi il codice nell'istruzione if non verrà mai eseguito. – JPot

+0

+1 hai ragione, avevo bisogno di farne una stringa prima, prima di chiedere la 'lunghezza'. – RuudKok

0

C'è una libreria javascript here che sembra che sarà gestire tutti i tipi di conversioni di data piacevolmente, tra cui la formattazione delle date in modo che il mese è sempre due cifre.

0

Se si utilizza il framework Prototype, esiste un metodo toPaddedString che esegue questa operazione.

a = 2; 
a.toPaddedString(2) 
// results in "02" 
1

La risposta ovvia è quella di utilizzare un'istruzione IF ...

var dat = new Date(); 
var hr = dat.getHour(); 

if(hr < 10) { 
    hr = "0" + hr; 
} 
+0

sostituire dat.getHour(); con dat.getHours(); – wlf

3
var d,h 
d = new Date() 
h = (h = d.getHours()) < 10 ? '0' + h : h 
1

Si può sempre fare solo

var time = new Date(); 

('0' + time.getDate()).slice(-2)