情况 我想使用ui-date在我的应用中设置/编辑日期。我使用最新的稳定版本的angular,angular-ui,jquery-ui等。
问题 使用日期选择器选择日期后,我模型中的日期将等于所选日期减去1天。它也会被发送到我的服务器并以这种方式保存在我的数据库中。
the plunker http://plnkr.co/edit/Ft14Wa?p=preview 最初,datepicker输入中的日期和模型中的日期是相同的。选择日期后,他们会有所不同。
问题 (g)这里有什么(wr)???
答案 0 :(得分: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>
答案 1 :(得分:4)
这解决了我的问题。 angularjs使用考虑小时时间的默认时区。将ng-model的时区选项设置为UTC清除小时时间......
performSelector:withObject:afterDelay:
答案 2 :(得分:3)
问题是当解析在datepicker上选择的日期时,angular正在使用其默认时区。要解决此问题,您可以使用接受“timezone”参数的ng-model-options指令。
<input type="text" ng-model-options="{timezone:'UTC'}" ... >
答案 3 :(得分:0)
我将日期格式设置为dd-mm-yyyy作为我的要求。然后将date-type设置为string。
<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>