2013-03-05 110 views
4

情況 我想使用ui-date在我的應用程序中設置/編輯日期。我用角,角的UI,jQuery的UI的最新的穩定版本等Angular-UI從日期中減去一天

問題 作爲一個日期使用日期選擇器選擇很快在我的模型的日期將等於選擇的日期零1天。它也會發送到我的服務器並以這種方式保存在我的數據庫中。

的plunker http://plnkr.co/edit/Ft14Wa?p=preview 最初的日期選擇器輸入日期和在我的模型的日期是相同的。選擇一個日期後,他們會有所不同。

問題 (g)在這裏怎麼回事(wr)???

回答

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 2013-03-05 15:23:54

+0

jQuery的ui配置選項有點神祕。我自己經常迷失在他們身邊。 – Stewie 2013-03-05 15:50:30

+0

對我不起作用 – Matiishyn 2016-11-22 13:47:29

2

問題是在解析日期選擇器上選擇的日期時,angular使用其默認時區。要解決此問題,您可以使用接受「時區」參數的ng-model-options指令。

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

這解決了我的問題。 angularjs使用考慮小時的默認時區。塞汀NG-模型的時區選項UTC清晰小時的時間......

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

謝謝..u救了我 – 2016-10-18 07:04:08

+0

沒問題先生, – Ghebrehiywet 2016-11-18 08:15:16

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> 
+0

支持日期類型的字符串已經在更新版本的AngularJS中刪除 – joelmdev 2018-01-09 01:18:41