Erreur: [ngModel:datefmt] Attendu " 2015-05-29T19:06:16.693209 Z` à une date - Angulaire
Je suis en train de travailler sur angular
application avec Django
avec rest-framework
..
L'application reçoit l'info avec json à partir du serveur.. l'Une des clés est created_time
... La valeur de ce champ est le format selon iso-8601
, par exemple 2015-05-29T19:06:16.693209Z
.
Dans le client j'ai un champ:
<input type="time" ng-model="created_time">
Mais lorsque les données arrivent, j'obtiens cette erreur:
Error: [ngModel:datefmt] Expected `2015-05-29T19:06:16.693209Z` to be a date http://errors.angularjs.org/1.3.13/ngModel/datefmt?p0=2015-05-29T19%3A06%3A16.693209Z
at REGEX_STRING_REGEXP (angular.js:63)
at Array.<anonymous> (angular.js:19807)
at Object.ngModelWatch (angular.js:23289)
at Scope.$get.Scope.$digest (angular.js:14235)
at Scope.$get.Scope.$apply (angular.js:14506)
at done (angular.js:9659)
at completeRequest (angular.js:9849)
at XMLHttpRequest.requestLoaded (angular.js:9790)
J'ai déjà tout essayé 🙁 le format est exactement comme les instructions dans la documentation angulaire...
Vous devez vous connecter pour publier un commentaire.
Cela doit se passer avec angulaire de 1,3+. 1.3+ sur les pupilles de la ng-modèle pour la date/l'heure d'entrée doit être une date valide de l'objet, représentation de chaîne de caractères date n'est plus autorisée. Vous avez besoin de les convertir en chaîne de caractères de l'objet date (
$scope.created_time = new Date(dateString)
) et le lier à la ng-model. Si vous suivez les erreur de lien elle a une description de l'erreur et comment la résoudre.new Date()
retourne toujours la date selon les paramètres régionaux de l'utilisateur, de sorte que pas une option. Si j'ai 08.33 enregistré sur le serveur, je veux afficher 8.33, pas quel que soit le décalage GMT l'utilisateur est sur.Si vous obtenez vos données à partir d'un Service REST, vous pouvez simplement convertir vos champs de Date.
Créer une directive simple qui convertit la valeur de modèle:
HTML:
Directive:
En plus de PSL réponse.
C'est la façon de remplacer angulaire de 1,3+ exigences pour être un objet Date.
<input type="date" ng-model="book.date" date-format/>
Il peut être utilisé avec AngularFire $firebaseObject et fonctionne très bien avec $bindTo 3 voies de liaison. Pas besoin de s'étendre $firebaseObject service. Il travaille dans Ionique/cordova applications.
Exemple de travail sur jsfiddle
Basé sur cette réponse
Problème en Fait ce qui est de la date format de l'émission, j'ai résolu ce problème en utilisant ce morceau de code.
Solution: ci-Dessous le morceau de code qui permettra de résoudre cette question:
où en-us format = "vendredi, Février 1, 2013 06:00 AM", j'espère que ça aidera d'autres personnes à résoudre la question, j'ai été confronté à cette erreur, et résolu avec cette.
J'ai eu cette erreur et j'ai directement utilisé l'objet: je vous poste la solution de la sorcière que j'ai effectué:
1:$userData.dob=new Date(userData.date de naissance);
2:$champ d'application.edit.userdob=userData.date de naissance;
avant le 1er j'ai fait face à d'erreur ci-dessus, puis j'ai directement créé l'objet et il a attribué à la modification de la portée et le problème a été résolu.
si la date se réduit de 1 jour, utilisez ce code,
Si vous avez besoin de mettre à jour toutes les dates dans le Tableau avec les Objets