Angulaire UI DatePicker de réglage de fuseau horaire
J'ai une date stockée comme une Date dans SQL Server. La date indique 4/24/2014 quand j'ai une requête SQL. Qui est correct. La date est correctement porté sur le côté client en UTC. Pour modifier cette date, nous sommes à l'aide de l'Angulaire de l'UI DatePicker. Le DatePicker est le réglage qui date de mon fuseau horaire local et donc, il est toujours désactivé en un seul jour.
Je peux voir que ça se passe. Si nous étions de la modification d'un DateTime au lieu d'une Date, alors il est correct pour régler le fuseau horaire. Toutefois, dans ce cas, j'ai juste une Date, donc je ne m'inquiète pas à propos de fuseau horaire et je veux juste modifier la date qu'il a été dans la base de données.
Je peux vérifier que c'est le réglage de fuseau horaire. Si je change le fuseau horaire sur ma machine windows UTC puis le DatePicker ne montrons que la date correcte.
Donc, la question est, est-il un moyen de dire le DatePicker pour désactiver le fuseau horaire ajustements et de gérer les dates en format UTC afin qu'il fonctionne avec SQL Date au lieu d'un Datetime de SQL?
Vous devez vous connecter pour publier un commentaire.
J'ai eu un problème similaire il y a un moment, je voulais le magasin local dates sur le côté serveur (c'est à dire juste aaaa-mm-jj et pas de timezome/l'information en temps), mais depuis l'angle d'Amorçage Datepicker utilise le JavaScript objet Date, ce n'était pas possible (il sérialise un UTC datetime chaîne dans le JSON que vous l'avez trouvé vous-même).
J'ai résolu le problème avec la présente directive: https://gist.github.com/weberste/354a3f0a9ea58e0ea0de
Essentiellement, je suis le reformatage de la valeur à chaque fois qu'une date est sélectionnée sur le datepicker (cette valeur, une aaaa-mm-jj chaîne formatée, seront stockés sur le modèle), et lorsque le modèle est utilisé pour remplir la vue, j'ai besoin de l'envelopper dans un objet Date, de nouveau, de façon datepicker le gère correctement.
Solution trouvée ici: https://github.com/angular-ui/bootstrap/issues/4837#issuecomment-203284205
EDIT: Cette solution ne fonctionne pas depuis la version 2.x, il n'a toutefois parfaitement bien jusqu'alors. Je ne pouvais pas trouver une solution et je suis toujours à l'aide de la version 1.3.3.
EDIT 2: Comme Sébastien Deprez a souligné dans les commentaires ci-dessous, ce problème a été corrigé dans la version 2.3.1. Je viens de tester et il fonctionne très bien.
D'abord je tiens à souligner que le bootstrap est localisé sélecteur de date est stupide et inutile, personne n'a besoin de quelque chose comme cela, tout ce que vous voulez vraiment est une date aaaa-MM-jj, je ne vois pas de point dans la localisation de la date à laquelle vous n'avez pas besoin de temps.
Je n'essayez pas de plier le côté client pour ajuster le fuseau horaire du serveur, c'est exagéré, et ne fonctionne pas.
Ce que je faire à la place est laissé à l'utilisateur de travailler dans le fuseau horaire et le format de la date avant de l'envoyer au serveur comme ceci:
Cela garantit que tout ce que l'utilisateur voit dans le sélecteur de date que je reçois sur le côté serveur. Indispensable si vous me demandez.
Si vous avez besoin de définir min et max de dates, de nouveau, juste les mettre dans le fuseau horaire de l'utilisateur comme ceci:
minDate et maxDate serveurs sont localisés les dates et les serverTimezone est le fuseau horaire du serveur offset ('+0500', par exemple).
Espérons que cette aide!
Espoir en dessous de la directive est utile pour vous
Pour moi, parce que nous utilisons une très vieille version de la bibliothèque, et étant donné un objet expiration_date retourné par le datepicker, j'ai dû trouver une solution de contournement et tordu comme ça :
Sur lequel sera fixé le jour demandé à son correspondant UTC date mais toujours exprimées dans le fuseau horaire local format.
Pour moi ça a bien fonctionné. J'espère que ça peut aider quelqu'un.
Paramètre de fuseau horaire pour null a fonctionné comme un charme pour moi. Il continue juste à la date sélectionnée comme il est.
Remarque: Testé sur tous les fuseaux horaires & l'uib version que j'utilise est 1.3.3