web-dev-qa-db-fra.com

Spécifier la valeur de sortie d'un type d'entrée HTML5 = date?

J'aimerais ajouter des sélecteurs de date natifs à mon application, qui utilise actuellement un système hérité, hérité. La prise en charge de la date n'est pas encore généralisée, mais si je pouvais présenter les deux implémentations en fonction de la compatibilité, ce serait idéal.

Est-il possible de spécifier la sortie de la valeur donnée par un datepicker HTML? La valeur par défaut pour opera est yyyy-mm-dd, et j’ai très explicitement besoin de dd-MMM-yyyy.

Est-il possible de contrôler cette sortie actuellement?

30
Stefan Kendall

Le champ entrée de date HTML5 est spécifique au format utilisé: RFC 3339 full-date

Est-il possible de changer le sélecteur de date hérité pour utiliser le format aaaa-mm-jj (et mettre à jour le côté serveur qui le lit)? 

Je suppose que non, vous pouvez donc ajouter du code de liaison Javascript qui écoute un événement de modification sur l'entrée HTML5 et met à jour un champ de valeur de date masqué pour l'adapter au format du sélecteur de date hérité (convertit aaaa-mm-jj en jj-mm -yyyy).

24
Nick

Dans Google Chrome, cela a récemment changé. Les valeurs affichées à l'utilisateur sont maintenant basées sur les paramètres régionaux du système d'exploitation. La lecture, donc input.value, retourne toujours comme yyyy-mm-dd quel que soit le format de présentation.

Bien plus utile à mon avis.

La source:

http://updates.html5rocks.com/2012/08/Quick-FAQs-on-input-type-date-in-Google-Chrome

15
Lg102

Le format du champ de date HTML est standard. Bien qu'il ne soit pas possible de changer cela, vous pouvez facilement convertir un objet de date au format que vous recherchez étant donné que JavaScript est activé pour votre utilisateur.

// Converts any valid Date string or Date object into the format dd-MMM-yyyy
function dateTransform(d) {
    var s = (new Date(d)).toString().split(' ');
    return [s[2],s[1],s[3]].join('-');
}

Sinon, vous devrez soumettre au format ISO et mettre en œuvre une solution côté serveur. Peut-être qu'avec le temps, cela pourrait conduire à une utilisation accrue du format de date standard dans chaque localité.

0
TxRegex