27 votes

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

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

Existe-t-il un moyen de spécifier la sortie de la valeur donnée par un sélecteur de date HTML? La valeur par défaut pour l'opéra est yyyy-mm-dd , et j'ai très explicitement besoin de dd-MMM-yyyy .

Existe-t-il actuellement un moyen de contrôler cette sortie?

20voto

Nick Points 3716

Le HTML5 date d'entrée de champ est spécifique sur le format qu'il utilise: RFC 3339 plein jour

Est-il possible de changer l'héritage de sélecteur de date à utiliser aaaa-mm-jj (et mise à jour côté serveur qui lit ça)?

Je suppose que non, alors vous pouvez ajouter un peu de Javascript colle le code que l'écoute d'un événement de changement sur l'entrée HTML5 et mises à jour cachés date de champ de valeur pour correspondre au format de l'héritage de sélecteur de date (convertit le format aaaa-mm-jj jj-MMM-aaaa).

13voto

Lg102 Points 755

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

Beaucoup plus utile à mon avis.

La source:

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

0voto

TxRegex Points 391

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 votre utilisateur a activé JavaScript.

 // 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 implémenter une solution côté serveur. Peut-être qu'avec le temps, cela pourrait conduire à une plus grande utilisation du format de date standard dans chaque localité.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X