web-dev-qa-db-fra.com

Type d'entrée DateTime - Format de valeur?

Dans quel format dois-je mettre la date et l'heure, pour une utilisation dans l'élément d'entrée HTML5 avec le type datetime?

J'ai essayé:

  • 1338575502
  • 01/06/2012 19:31
  • 01/06/2012 19:21:00
  • 2012-06-01
  • 2012-06-01 19:31
  • 2012-06-01 19:31:00

Aucun d'entre eux ne semble fonctionner.

48
RobinJ

Pour <input type="datetime" value="" ...

Une chaîne représentant une date et une heure globales.

Valeur : date-heure valide, telle que définie dans la [RFC 3339], avec les qualifications supplémentaires suivantes:

• les lettres littérales T et Z dans la syntaxe date/heure doivent toujours être en majuscule

• la production date de la première année est plutôt définie comme quatre chiffres ou plus représentant un nombre supérieur à 0

Exemples :

1990-12-31T23: 59: 60Z

1996-12-19T16: 39: 57-08: 00

http://www.w3.org/TR/html-markup/input.datetime.html#input.datetime.attrs.value

Mise à jour:

Cette fonctionnalité est obsolète. Bien que certains navigateurs puissent continuer à fonctionner, son utilisation est déconseillée car elle pourrait être supprimée à tout moment. Essayez d'éviter de l'utiliser.

Le code HTML était un contrôle permettant de saisir une date et une heure (heure, minute, seconde et fraction de seconde) ainsi qu'un fuseau horaire. Cette fonctionnalité a été supprimée de WHATWG HTML et n'est plus prise en charge par les navigateurs.

Au lieu de cela, les navigateurs implémentent (et les développeurs sont encouragés à utiliser) le type d’entrée datetime-local.

Pourquoi le type d’entrée HTML5 datetime est-il supprimé des navigateurs qui le prennent déjà en charge?

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/datetime

46

Cet article semble montrer les types valides qui sont acceptables

<time>2009-11-13</time>
 <!-- without @datetime content must be a valid date, time, or precise datetime -->
<time datetime="2009-11-13">13<sup>th</sup> November</time>
 <!-- when using @datetime the content can be anything relevant -->
<time datetime="20:00">starting at 8pm</time>
 <!-- time example -->
<time datetime="2009-11-13T20:00+00:00">8pm on my birthday</time>
 <!-- datetime with time-zone example -->
<time datetime="2009-11-13T20:00Z">8pm on my birthday</time>
 <!-- datetime with time-zone “Z” -->

Celui-ci couvre l’utiliser dans le <input> champ:

<input type="date" name="d" min="2011-08-01" max="2011-08-15"> Cet exemple de type de saisie HTML5 "date" associé aux attributs min et max montre comment nous pouvons limiter les dates qu'un utilisateur peut saisir. Les attributs min et max ne dépendent pas l'un de l'autre et peuvent être utilisés indépendamment.

<input type="time" name="t" value="12:00"> Le type de saisie HTML5 "heure" permet aux utilisateurs de choisir une heure correspondante qui est affichée au format 24 heures. Si nous n'incluions pas la valeur par défaut de "12:00", l'heure se réglerait sur l'heure de la machine locale de l'utilisateur.

<input type="week" name="w"> La semaine de type Entrée HTML5 affiche la version numérique de la semaine indiquée par un "W" avec l'année correspondante.

<input type="month" name="m"> Le mois de type d’entrée HTML5 fait exactement ce que vous attendez de lui. Il affiche le mois. Pour être précis, il affiche la version numérique du mois avec l'année.

<input type="datetime" name="dt"> Le type de saisie HTML5 Datetime affiche le code de date et d'heure UTC. L'utilisateur peut modifier les pas de temps en avant ou en arrière par incréments d'une minute. Si vous souhaitez afficher la date et l'heure locales de l'utilisateur, vous devrez utiliser l'exemple suivant datetime-local

<input type="datetime-local" name="dtl" step="7200"> Étant donné que datetime se déplace d’une minute à la fois, vous pouvez modifier l’incrément par défaut en utilisant l’attribut "step". Dans l'exemple suivant, nous allons l'incrémenter de deux heures en définissant l'attribut step à 7200 (60seconds X 60 minutes X 2).

16
John Conde

Pour ce que cela vaut, avec iOS7 qui supprime la prise en charge de datetime, vous devez utiliser datetime-local qui n'accepte pas la portion de fuseau horaire (ce qui est logique).

Ne fonctionne pas (iOS quand même):

 <input type="datetime-local" value="2000-01-01T00:00:00+05:00" />

Travaux:

<input type="datetime-local" value="2000-01-01T00:00:00" />

PHP pour valeur (windows safe):

strftime('%Y-%m-%dT%H:%M:%S', strtotime($my_datetime_input))
15
Brandon Hill

C'était une bonne perte d'une heure de mon temps. Pour vous, castors avides, le format suivant a fonctionné pour moi:

<input type="datetime-local" name="to" id="to" value="2014-12-08T15:43:00">

La spécification était un peu déroutante pour moi, elle disait d’utiliser RFC 3339, mais sur mon PHP), quand j’utilisais le format DATE_RFC3339, cela n’initialisait pas mon entrée hmtl :( Constante de PHP pour DATE_RFC3339 est "Ymd\TH: i: sP" au moment de la rédaction, il est logique de vous débarrasser des informations de fuseau horaire (nous utilisons datetime-LOCAL, folks). Le format qui a fonctionné pour moi était le suivant:

"Y-m-d\TH:i:s"

J'aurais trouvé plus intuitif de pouvoir définir la valeur du sélecteur de date lorsque celui-ci affiche la date, mais j'imagine que la façon dont il est affiché diffère d'un navigateur à l'autre.

10
Jacob McKay

Cela fonctionne pour définir la valeur de INPUT:

strftime('%Y-%m-%dT%H:%M:%S', time())
3
Enigma Plus

Celui-ci apparaît correctement comme HTML5-Tag pour ceux qui recherchent ceci:

<input type="datetime" name="somedatafield" value="2011-12-21T11:33:23Z" />
1
Timo Braun