2012-07-09 1 views
5

Devo creare una selezione temporale "da ... a" e ho creato 2 componenti TimePicker per quello. Poiché il database dietro di esso esiste già da anni e utilizza un formato di 24 ore, nel mio codice, sto impostandoTimePicker non consente "24:00"?

tpOpenFrom.setIs24HourView(true); 
tpOpenTo.setIs24HourView(true); 

Il mio problema ora è che a quanto pare, non può essere selezionato "24:00" come valore "to:", come dopo "23" (: 00), il componente passa "indietro" a "00" (: 00), rendendo impossibile scoprire se l'utente ha dimenticato di effettuare una selezione effettiva, ad esempio se "09:00" è stato inserito come "da" ora e "00:00" come orario "a". O se è stata effettuata una selezione da "00:00" a "00:00": l'utente ha dimenticato di inserire qualcosa o ha intenzione di definire "aperto tutto il giorno"?

In modalità 24 ore, TimePicker dovrebbe consentire l'inserimento delle 24:00. Il sistema di orologio a 24 ore in ISO 8601 definisce la mezzanotte come un caso speciale, che può essere indicato come "00:00" e "24:00", quindi TimePicker dovrebbe consentire di impostare le ore su 24 e bloccare automaticamente il da 00 a 00.

Qualcuno ha un'idea su come ottenerlo utilizzando TimePicker?

+0

correndo in un problema analogo; ma sembra che ogni TimePicker sul pianeta ignori la disambiguazione ISO8601 5.3.2 di "mezzanotte". Come dici tu, 00:00 e 24:00 sono entrambi valori validi in una rappresentazione dei dati solo tempo, secondo ISO. – Tim

risposta

2

Ho avuto gli stessi problemi con un bootstrap timepicker ma non è difficile da implementare. Sto usando il timepicker di Joris de Wit (http://jdewit.github.io/bootstrap-timepicker/).

cercare "24" e sostituire tutte le occorrenze con "25", quindi cercare "23" nel file bootstrap-timepicker.js e sostituirli con "24".

se si desidera consentire tempi come 24:01, .., 24:59, il gioco è fatto. Se si desidera solo accettare 24:00 ma non 24 con minuti, andare alla riga 133 dove si trova la funzione getTime.

inserire il seguente codice di fronte al ritorno esistente (ma non eliminarlo):

if (this.hour == 24 && this.minute != 0) { 
    this.setTime('00:' + this.minute); 
    return '00:' + this.minute; 
} 

Questo convertirà ogni 24: tempo XX a 00: XX.