Это правильная дата для угловых версий, однако дата форматируется UTC, который мог бы оказаться неправильными, если вы не в полной мере осведомлены об этом.
Часовой пояс всегда равен нулю UTC offset, как обозначается суффиксом «Z».
UTC Source
Посмотрите в угловых date filters. Есть много вариантов из коробки, и практически любой желаемый формат может быть получен - но самое главное, разрешен для вашего часового пояса. Например ...
{{dateModel | date:'shortDate'}} // -- prints 5/14/15
{{dateModel | date:'yyyy-MM-dd'}} // -- prints 2015-05-14
Plunker Link
Подробнее о явно обеспечивая timezone
и доверяя В параметре браузер, чтобы решить наше время (угловые документы)
{{ date_expression | date : format : timezone }} // -- template binding
$filter('date')(date, format, timezone) // -- javascript
часовой пояс на используется для форматирования. Он понимает UTC/GMT и континентальные аббревиатуры часового пояса США, но для общего использования используйте смещение часового пояса , например, «+0430» (4 часа, 30 минут к востоку от ). Если это не указано, будет использоваться часовой пояс браузера .
Если ваши предпочтения явно определить часовой пояс с ngModelOptions, а не используя фильтры, вы можете сделать это следующим
<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
См this answer, который объясняет логику за ручной расчет
Plunker Link - с ng-model-options
у меня нет хотите использовать фильтр, а использовать ng-model-options – user1184100
@ user1184100 Любая причина? Просто любопытно. В любом случае, обновленный ответ для вас, который включает в себя этот фильтр – scniro
, используется только для отображения, но данные в ng-модели сохраняются в db, поэтому я предпочел бы варианты ng-model – user1184100