2013-06-08 4 views
17

Я использую поле ввода даты и форматирование выбранной даты в своем ui с помощью Angular. Но отформатированная дата всегда на 1 день меньше выбранной даты. Почему это и как я могу это исправить?Почему Угловой фильтр даты показывает неправильную дату?

HTML:

<div ng-app="miniapp"> 
    <div> 
    <label class="control-label" for="inputStart">Start Date:</label> 
     <input type="date" id="inputStart" data-ng-model="startDate" /><br /> 
     Selected: <span>{{ startDate }}</span><br /> 
     fullDate: <span>{{ startDate | date:'fullDate' }}</span><br /> 
     mediumDate: <span>{{ startDate | date:'mediumDate' }}</span><br /> 
     MMMM d yyyy<span>{{ startDate | date:'MMMM d yyyy' }}</span> 
    </div>  
</div> 

JS:

var app = angular.module('miniapp', []); 

У меня есть скрипка, демонстрирующий вопрос: http://jsfiddle.net/wittersworld/uY3s9/

EDIT: Я обновил скрипку с рабочим раствором: http://jsfiddle.net/wittersworld/uY3s9/2/

+0

В вашей свидании даты выглядят просто отлично. – Stewie

+1

@ Stewie, это потому, что Сараево - GMT + 1. Если вы попробуете скрипку OP в 0:05 вашего времени, когда GMT - 23:05 в предыдущий день, это будет похоже на то, что скрипка показывает на один день позже, чем вы ввели. –

ответ

15

Это проблема с часовым поясом.

Если вы вводите дату, например, 8 июня 2013 года, в свою дату, это полночь GMT. Если вы живете на запад Англии, скажем, в США, это 7 июня 2013 г.

Изменение линии

{{ startDate | date:'fullDate' }} 

в

{{ startDate | date:'medium' }} 

, чтобы увидеть время!

+1

Спасибо Рэй! Это привело меня к правильному пути решения. Я нашел статью, которая помогла мне до конца, и обновила скрипку с помощью рабочего метода. http://www.techrepublic.com/article/convert-the-local-time-to-another-time-zone-with-this-javascript/6016329 – witters

+0

+1 За время, чтобы объяснить, почему это работает для меня. – Stewie

+2

Рабочая ссылка: http://www.techrepublic.com/article/convert-the-local-time-to-another-time-zone-with-this-javascript/ – jeffgabhart

Смежные вопросы