2015-02-27 19 views

risposta

1

Si consiglia di utilizzare input.valueAsDate o input.valueAsNumber anziché input.value.

+1

ah sì, $ ('# myTextbox') [0] .valueAsNumber = new Date(). GetTime(); lavori! –

+4

almeno in google chrome, questo non funziona: $ ('# myTextbox') [0] .valueAsDate = new Date(); Uncaught InvalidStateError: Impossibile impostare la proprietà 'valueAsDate' su 'HTMLInputElement': questo elemento di input non supporta i valori Date. –

5

http://www.w3schools.com/jsref/jsref_toisostring.asp:

The toISOString() method converts a Date object into a string, using the ISO standard.

The standard is called ISO-8601 and the format is: YYYY-MM-DDTHH:mm:ss.sssZ

Mentre ISO 8601 ha una certa flessibilità, il formato di toISOString di Data di JavaScript() è esattamente come indicato sopra.

La "Z" alla fine indica che questa è una data UTC. Quindi, questa rappresentazione include informazioni sul fuso orario. (Sono date JavaScript naturalmente nel tempo UTC poiché sono rappresentati internamente come millisecondi dalla epoca.)

Il formato di ingresso HTML5 con il tipo = datetime-locale deve essere ...

The following parts, in exactly the following order:

  • A date.
  • The literal string "T".
  • A time.

Example:

1985-04-12T23:20:50.52

1996-12-19T16:39:57

http://www.w3.org/TR/html-markup/input.datetime-local.html

Questo è ancora ISO 8601, ma più rigoroso e non consente di specificare un fuso orario.

Per fortuna, rimuovere il fuso orario è facile come rimuovere la "Z" finale.

var isoStr = new Date().toISOString(); 
$('#myTextbox').val(isoStr.substring(0,isoStr.length-1)); 
+0

ha svuotato la risposta di int32_t ma sto usando questo per la compatibilità con firefox, che non supporta datetime-local. –