2013-10-09 18 views
26

Qualcuno può spiegare perché quando imposto il valore predefinito di un input datetime-local con secondi diversi da: 00, il browser mi dà un errore di "Valore non valido . "?'Valore non valido' quando si imposta il valore predefinito in HTML5 input locale datetime

Questo potrebbe essere un bug nell'implementazione di datetime-local da parte di Chrome in quanto questo bug non appare negli ultimi Firefox e Safari.

Errore in Chrome: 30.0.1599.69

enter image description here

Chrome Canary: 32.0.1665.2 canarino

enter image description here

Questo funziona:

<input type="datetime-local" name="pub_date" value="2013-10-09T15:38:00"> 

Ma questo non lo fa: "Una stringa che rappresenta la data e l'ora locale"

<input type="datetime-local" name="pub_date" value="2013-10-09T15:38:15"> 

Link to fiddle.

Per il W3 Spec for the datetime-local input element, l'attributo value dovrebbe contenere

Example: 
1985-04-12T23:20:50.52 
1996-12-19T16:39:57 

Ho provato entrambi gli esempi precedenti e non funzionano neanche.

Aggiornamento: Bug Confermato & Soluzione

Questo comportamento è un known bug.

A partire da oggi, la soluzione rapida è quella di aggiungere l'attributo passo in questo modo per i secondi diversi da zero:

<input type="datetime-local" 
     name="pub_date" 
     value="2013-10-09T15:38:15" 
     step="1"> 
+2

Questo bug è stato risolto molto tempo fa basta che non è più un problema. –

risposta

0

Chrome è alla ricerca di un timestamp completo non c'è davvero nessun modo per aggirare mettere uno. Basta azzerare i millisecondi e dovresti essere bravo.

+0

Questa è forse una soluzione alternativa, ma non è davvero una risposta alla domanda. La domanda era: "Qualcuno può spiegare perché quando imposto il valore predefinito di un input datetime-local con millisecondi diversi da: 00, il browser mi dà un errore di" valore non valido "? ' – colidyre

+0

@colidyre ovviamente lo fa, anche se sfortunato. –

1

Il browser Chrome richiede la data in "aaaa-MM-ggThh: mm" seguito dal formato opzionale ": ss" o ": ss.SSS". Quindi, quando assegniamo Data e Ora, dobbiamo assegnarlo nel formato richiesto altrimenti non mostrerà l'Ora. Anche noi possiamo confermare dallo strumento di ispezione del browser [Ctrl + I] nella scheda della console.

enter image description here

2

questo funziona in Chrome versione 52.0.2743.116 m

<input type="datetime-local" name="pub_date" value="2013-10-09T15:38:15" /> 
Problemi correlati