/ / jquery ui datepicker setdate ne fonctionne que sur Google Chrome - javascript, jquery, jquery-ui, datepicker, jquery-ui-datepicker

jquery ui datepicker setdate ne fonctionne que sur Google Chrome - javascript, jquery, jquery-ui, datepicker, jquery-ui-datepicker

Mon code:

<input type="text" id="testdate" name="testdate" value="2017-01-01" />

<script>
$("#testdate").datepicker();
$("#testdate").datepicker("option", "dateFormat", "yy-mm-dd");
$("#testdate").datepicker("setDate", new Date("2017-01-01 12:00:00"));
</script>

JS Fiddle: https://jsfiddle.net/g0uyok13/

Dans Google Chrome, le 2017-01-01 est affiché dans la zone de saisie de texte. Dans Firefox, cela indique la date du jour (atm 2016-02-24). Je souhaiterais que cela fonctionne dans Firefox de la même manière que dans Google Chrome.

Des idées?

Réponses:

2 pour la réponse № 1

Le problème réside dans le temps 12:00:00 . N'oubliez pas que c'est un datepicker que vous utilisez. Le temps n'a rien à voir avec cela.

Maintenant, la raison pour laquelle cela fonctionne en chrome, je suppose que c'estimplémentation interne du navigateur. Mozilla supprime le format de date invalide pendant que chrome essaye et le réduit ...

METTRE À JOUR

Oui, mon hypothèse était juste. Firefox ne prend pas en charge le format de date que vous avez entré, tandis que chrome est plus flexible et le supporte. Pour la date et l'heure universelles, vous pouvez utiliser ce code:

$("#testdate").datepicker();
$("#testdate").datepicker("option", "dateFormat", "yy-mm-dd");
$("#testdate").datepicker("setDate", new Date("2017-01-01T12:00:00Z"));

(Fonctionne dans les deux navigateurs)

Vous pouvez voir aussi new Date () fonctionne différemment dans Chrome et Firefox pour plus d'informations à ce sujet


1 pour la réponse № 2

Vous pouvez essayer de changer le format de votre chaîne de date pour être au format:

$("#testdate").datepicker("setDate", new Date("2017-01-01T12:00:00"));

Firefox ne sait pas comment analyser la date avec un espace

Voici un extrait de MDN

dateString

Valeur de chaîne représentant une date. La chaîne devrait être dans un format reconnu par la méthode Date.parse () (RFC 2822 conforme à l'IETF timestamps et aussi une version de ISO8601).

Vous pouvez voir plus d'infos sur https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date


0 pour la réponse № 3

Votre date n'est pas valide dans firefox ... essayez ceci:

$("#testdate").datepicker();
$("#testdate").datepicker("option", "dateFormat", "yy-mm-dd");
$("#testdate").datepicker("setDate", new Date(2017, 00, 01, 12, 0, 0, 0));

REMARQUE: Les mois sont 0 basés donc 0 est janvier 1 est février etc ...

Cela devrait fonctionner dans Firefox et Chrome. J'ai pris le format de date de cet article stackoverflow: lien

Essayez ceci dans Firefox:

console.log(new Date("2017-01-01 12:00:00"));

Vérifiez votre console, il devrait montrer:

Date invalide

travail du violon