2013-03-05 2 views
4

Ситуация Я хочу использовать дату ввода даты, чтобы установить/изменить дату в своем приложении. Я использую последние стабильные версии угловой, угловой Ui, Jquery-интерфейса и т.д.Angular-UI Один день вычитается из даты в ui-date

Проблема Как только дата выбирается с помощью DatePicker дата в моей модели будет равна выбранной даты минус 1 день , Он также будет отправлен на мой сервер и сохранен в моей базе данных таким образом.

plunker http://plnkr.co/edit/Ft14Wa?p=preview Первоначально дата на входе Datepicker и дату в моей модели одинаковы. После выбора даты они различаются.

Вопрос Что происходит (wr) on (g) здесь ???

ответ

9

ui-date ожидает, что ваша модель станет фактическим объектом даты. В вашем случае это строка. Если вы посмотрите на консоль, вы увидите, что angularUI на самом деле информирует вас об этом. Затем он советует вам добавить дополнительный тег ui-date-format с указанным форматом даты, с которым ваша строка даты будет проанализирована в объект даты.

Короче говоря, ваша потребность настроить вход, как это:

<input ui-date="{dateFormat: 'yy-mm-dd'}" ui-date-format="yy-mm-dd" ng-model="customer.contract_end_date"></input> 

Working plunker.

+0

Я использовал директиву 'ui-date-format', но без значения. Раньше я не использовал '' {dateFormat: 'yy-mm-dd'} ", поэтому он не работал, я потерял трек где-то долго, так что я не пробовал это так. Thnx @stewie! – Wilgert

+0

Параметры конфигурации jQuery ui немного загадочны. Я сам часто теряюсь с ними. – Stewie

+0

не работает для меня – Matiishyn

2

Проблема заключается в том, что угловой использует свой часовой пояс по умолчанию при анализе даты, выбранной на datepicker. Чтобы решить проблему, вы можете использовать директиву ng-model-options, которая принимает параметр «часовой пояс».

<input type="text" ng-model-options="{timezone:'UTC'}" ... > 
3

это решает проблему. angularjs использует часовой пояс по умолчанию, который учитывает время в часах. SETING вариант часового пояса в нг-модели UTC ясно раз час ......

ng-model-options="{timezone:'UTC'}" 
+0

спасибо ..u спас меня –

+0

без проблем sir, – Ghebrehiywet

0

Я установил формат даты дд-мм-гггг как мое требование. затем установите тип даты как строку.

<input type="text" class="form-control col-xs-9" 
         data-date-format="dd-MM-yyyy" data-autoclose="1" 
         ng-model="modelName" 
         date-type="string" bs-datepicker required> 
+0

поддержка даты-типа строки была отброшена в новых версиях AngularJS – joelmdev

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