2016-12-20 1 views
0

Ich mache Web-App mit Angular und WebAPI. Ich habe ein seltsames Problem mit Differenzdaten zwischen Angular Controller und WebAPI-Controller. Auf meiner HTML-Seite habe ich eine Eingabe für Typ Datum:Unterschiedliches Eingabedatum zwischen HTML und WebAPI

<input id="signupDateofBirth" ng-model="dateofBirth" placeholder="Date of birthday" type="date" max="1998-01-01" min="1900-12-31" class="form-control">

Nehmen wir an, dass das Datum 31.12.1990 ist. Ich Zuweisung es in meinem Winkelregler und beim Debuggen Datum korrekt ist: 31.12.1990:

DateOfBirth: $scope.dateofBirth 
 

 
DateOfBirth: Mon Dec 31 1990 00:00:00 GMT+01

enter image description here

Das Problem erscheint, wenn ich Objekt in WebAPI Controller erhalten. Das Datum ist der Tag vor dem Datum des Angular Controllers. Es ist 30.12.1990 wie auf Bild: enter image description here

Irgendwelche Ideen? Vielleicht muss ich es formatieren?

Antwort

1

Dies erscheint wegen der Zeitzone.

In Ihrem Controller ist das Datum korrekt mit Ihrer lokalen Zeitzone (GMT + 1) formatiert.

Wenn Ihre API sie empfängt, weiß sie nicht, wie sie damit umgehen soll: Sie müssen angeben, dass die in Ihrem JSON zurückgegebenen Daten in der lokalen Zeitzone liegen.

Versuchen Sie, Ihre lokale Zeitzone in Ihrer API startup.cs anzugeben, z. mit newtonsoft JSON:

json.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Local; 

EDIT

Sie sollten immer ein ISO-formatierte Datum in Ihre API und umgekehrt übergeben. Siehe: https://wikipedia.org/wiki/ISO_8601

+0

Ja, es funktioniert! Vielen Dank! – ryckoshet

+0

Gern geschehen :) – Parker

Verwandte Themen