4

我想使用 ui-date 在我的应用程序中设置/编辑日期的情况我使用 angular、angular-ui、jquery-ui 等的最新稳定版本。

问题 一旦使用日期选择器选择日期,我的模型中的日期将等于所选日期减去 1 天。它也会以这种方式发送到我的服务器并保存在我的数据库中。

plunker http://plnkr.co/edit/Ft14Wa?p=preview 最初 datepicker 输入中的日期和我的模型中的日期是相同的。选择日期后,他们有所不同。

问题 在这里发生了什么(wr)on(g)???

4

4 回答 4

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>

工作笨拙

于 2013-03-05T15:20:13.560 回答
4

这解决了我的问题。angularjs 使用考虑小时时间的默认时区。将 ng-model 的时区选项设置为 UTC 清零时间......

ng-model-options="{timezone:'UTC'}"
于 2016-05-31T11:58:53.103 回答
3

问题是 Angular 在解析日期选择器上选择的日期时使用其默认时区。要解决此问题,您可以使用接受“时区”参数的 ng-model-options 指令。

<input type="text" ng-model-options="{timezone:'UTC'}" ... >
于 2016-04-26T11:16:02.397 回答
0

我将日期格式设置为 dd-mm-yyyy 作为我的要求。然后将日期类型设置为字符串。

<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>
于 2016-12-07T05:34:47.517 回答