Wilgert Wilgert - 4 months ago 21x
AngularJS Question

Angular-UI One day is subtracted from date in ui-date

The situation
I want to use ui-date to set/edit a date in my app. I use the latest stable versions of angular, angular-ui, jquery-ui etc.

The problem
As soon as a date is selected using the datepicker the date in my model will equal the selected date minus 1 day. It will also get send to my server and saved in my database this way.

The plunker
Initially the date in the datepicker input and the date in my model are the same. After picking a date they differ.

The question
What is going (wr)on(g) here???


ui-date expects your model to be an actual date object. In your case it's a string. If you take a look at the console you'll see that angularUI actually informs you about that. Then it advises you to add additional ui-date-format tag with the specified date format with which your date string will be parsed into date object.

Long story short, your need to adjust your input as this:

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

Working plunker.