Angulaire: filtre de date ajoute le fuseau horaire, la procédure de sortie de l'UTC?
Je suis en utilisant le filtre de date pour le rendu d'un timestamp unix dans un certain format. J'ai remarqué que le filtre ajoute le fuseau horaire local à la sortie.
Est-il possible de simplement la sortie du horodatage exact, sans ajout d'informations sur le fuseau horaire?
D'entrée:
talk.content.date_and_time = 1400167800
(est 05 /15 /14 @ 3:30:00 UTC)
Code:
{{talk.content.date_and_time*1000 | date:'dd-M-yyyy H:mm Z'}}
De sortie:
15-5-2014 17:30 +0200
Comment puis-je prendre la sortie 15:30 au lieu de 17:30?
- Quel est ton code? Quel est l'entrée, quel est le résultat? Quel est le résultat souhaité?
- Désolé, j'étais pressé. Ajouté à la question de @JBNizet.
- si vous passer raw d'un nombre entier de millisecondes, la Date de filtre à interpréter par rapport à l'heure locale encore. Cependant, l'utilisation de l'UTC, le constructeur et le passage d'une date ou d'anticiper le filtre du décalage horaire en ajoutant le décalage de votre propre millis et en passant il semble fonctionner.
- double possible de en Utilisant AngularJS filtre de date à date UTC
Vous devez vous connecter pour publier un commentaire.
'Z' est ce qui ajoute le fuseau horaire info. Comme pour la sortie de l'UTC, qui semble être l'objet d'une certaine confusion: les gens semblent graviter autour moment.js.
D'emprunt à partir de ce réponse, vous pourriez faire quelque chose comme ça, sans moment.js:
contrôleur
modèle
voici plunker à jouer avec elle
Voir aussi cette et cette.
Également à noter qu'avec cette méthode, si vous utilisez le 'Z' Angulaires du filtre de date, il semble qu'il sera toujours l'impression de vos locaux décalage horaire.
millisToUTCDate
dans un filtre.var millisToUTCDate = function(millis){ var date new Date(millis); return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds()); };
Cela a été utile pour moi cos' je n'étais pas en mesure de faire des filtres :/. Merci.Depuis la version
1.3.0
AngularJS introduit supplémentaire paramètre de filtretimezone
, comme suit:Mais dans les versions
1.3.x
pris en charge uniquement le fuseau horaire estUTC
, qui peut être utilisé comme suit:Depuis la version
1.4.0-rc.0
AngularJS prend en charge d'autres fuseaux horaires trop. Je n'ai pas été possible de tester tous les fuseaux horaires, mais voici par exemple comment vous pouvez obtenir une date, Heure normale du Japon (JSP, GMT +9):Ici vous pouvez trouver de la documentation d'AngularJS filtres de date.
REMARQUE: c'est de travailler uniquement avec Angulaire 1.x
Voici exemple de travail
Le filtre de date toujours les formats de la date en utilisant le fuseau horaire local. Vous devrez écrire votre propre filtre, basé sur la
getUTCXxx()
méthodes deDate
, ou sur une bibliothèque comme moment.js.J'ai simplement utilisé getLocaleString() fonction pour mon application. Elle devrait s'adapter à la timeformat commun pour les paramètres régionaux, donc pas de +0200 etc. Bien sûr, il y aura moins de possibilité pour le contrôle de la largeur de votre chaîne, puis.