Questa è la data corretta per la versione angolare, tuttavia la data è formattato per UTC che potrebbe sembrare sbagliato se non si è pienamente consapevole di questo.
Il fuso orario è sempre uguale a zero UTC, come indicato dal suffisso "Z".
UTC Source
sguardo nel angolare date filters. Ci sono molte opzioni fuori dalla scatola e praticamente qualsiasi formato desideri sia ottenuto - ma soprattutto, risolto nel tuo fuso orario. Per esempio ...
{{dateModel | date:'shortDate'}} // -- prints 5/14/15
{{dateModel | date:'yyyy-MM-dd'}} // -- prints 2015-05-14
Plunker Link
più su fornendo esplicitamente una paramater timezone
e fiducioso il browser per risolvere il nostro tempo (docs angolari)
{{ date_expression | date : format : timezone }} // -- template binding
$filter('date')(date, format, timezone) // -- javascript
fuso orario per essere utilizzato per la formattazione. Comprende le sigle UTC/GMT e le sigle continentali degli Stati Uniti , ma per uso generale usa uno scostamento del fuso orario , ad esempio '+0430' (4 ore, 30 minuti ad est di il meridiano di Greenwich) Se non specificato, verrà utilizzato il fuso orario del browser .
Se la vostra preferenza è quello di definire in modo esplicito un fuso orario con ngModelOptions piuttosto che sfruttando filtri, è possibile farlo con il seguente
<input type="date"
ng-model="dateModel"
ng-model-options="{timezone: timezone}" />
var date = new Date()
$scope.timezone = ((date.getTimezoneOffset()/60) * -100) // e.g. -400 EDT
Vedi this answer che spiega la logica dietro il calcolo manuale
Plunker Link - con ng-model-options
non lo faccio vuoi usare un filtro piuttosto usare le opzioni del modello ng – user1184100
@ user1184100 Qualche ragione per cui? Solo curioso. In ogni caso, la risposta aggiornata per voi che include questo filtro – scniro
viene utilizzata solo per il display, ma i dati in ng-model vengono salvati in db, quindi questa è la ragione per cui preferirei opzioni di modello ng – user1184100