2014-06-06 14 views
7

Il metodo Date.prototype.toLocaleTimeString() restituisce una stringa con una rappresentazione sensibile alla lingua della parte relativa all'ora di questa data. È disponibile per i browser moderni.Rimuovi secondi da toLocaleTimeString

Sfortunatamente, la funzione nativa non è in grado di prevenire lauscita di secondi. Per default, esso emette un formato momento come hh:mm:ss o hh:mm AM/PM ecc

secondo: La rappresentazione della seconda. I valori possibili sono "numeric", "2-digit".

Fonte: MDN reference

Ciò significa, che non si può usare qualcosa come {second: false}.


Sto cercando una soluzione semplice stupido, per rimuovere le secondi da una stringa formattata hh:mm:ss.

var date = new Date(); 
var time = date.toLocaleTimeString(navigator.language, {hour: '2-digit', minute:'2-digit'}); 
console.log(time); // 15:24:07 

Questa regolari espressioni Non lavoro:

time.replace(/:\d\d(|$)/,''); 
time.replace(/(\d{2}:\d{2})(?::\d{2})?(?:am|pm)?/); 
+0

'time.substr (0,5)'? – Halcyon

+0

@Halcyon Grazie, ma questo non funziona http://jsfiddle.net/e73GY/ – mate64

+0

'time = time.substr (0,5);' doofus: P – Halcyon

risposta

5

È possibile utilizzare:

var time = date.toLocaleTimeString(navigator.language, {hour: '2-digit', minute:'2-digit'}) 
      .replace(/(:\d{2}| [AP]M)$/, ""); 

btw Google Chrome rendimenti

new Date().toLocaleTimeString(navigator.language, {hour: '2-digit', minute:'2-digit'}); 

come "12:40 PM"

+0

Sì, 'hh: mm: ss' è il formato di output predefinito. Ho abilitato il formato di visualizzazione 24 ore sul mio sistema. – mate64

+0

ok aggiungendo '.replace (/ (: \ d {2} | [AP] M) $ /," ");' funzionerebbe in entrambi i casi. – anubhava

+0

Prego, felice che abbia funzionato. – anubhava

1

Giusto per aggiungere un altro combinazione possibile per raggiungere questo obiettivo:

(new Date()).toLocaleTimeString().match(/\d{2}:\d{2}|[AMP]+/g).join(' ') 
+0

Grazie, ma questo elimina completamente il tempo, quando l'output del formato del sistema è impostato su 'hh: mm AM/PM'. – mate64

+0

Funziona effettivamente con il tuo formato 'hh: mm: ss' AM o PM è opzionale nell'espressione – Dalorzo