對於UI5中的簡單離開應用程序,我需要在每次按下按鈕時將新sap.ui.commons.DatePicker的日期增加或減少一天,我如何獲得並設置新的日期?如何增加sap.ui.commons.DatePicker的日期值
問題是DatePicker只返回Date的字符串。我已經嘗試過新的日期(datePicker.getYyyymmdd()),但是之後我將一個殘疾人日期返回。
對於UI5中的簡單離開應用程序,我需要在每次按下按鈕時將新sap.ui.commons.DatePicker的日期增加或減少一天,我如何獲得並設置新的日期?如何增加sap.ui.commons.DatePicker的日期值
問題是DatePicker只返回Date的字符串。我已經嘗試過新的日期(datePicker.getYyyymmdd()),但是之後我將一個殘疾人日期返回。
您還應該考慮切換到sap.m.DatePicker,因爲sap.ui.commons.DatePicker在版本> = 1.38(不知道您使用哪個版本)時不推薦使用。 sap.m.DatePicker也有方法getDateValue,它應該已經返回一個日期對象。
JavaScript中的日期操作非常簡單。如果你想添加一天到一個日期,它將是date.setDate(date.getDate() + 1)
,並以相同的方式減去作品:date.setDate(date.getDate() - 1)
。
您只需將日期選取器使用的yyyymmdd
格式返回到Javascript的本機date
類型。正如@ R.Schmitt所說,你當然可以使用任何來自Stackoverflow的Javascript技巧。另一方面,UI5團隊已經在DateFormat類中爲你構建了這個邏輯,所以利用它可能是最好的。
要從yyyymmdd
到date
得到,你可以使用:
sap.ui.core.format.DateFormat.getDateInstance({pattern : "YYYYMMdd" }).parse(date);
要從date
到yyyymmdd
格式得到,你可以使用:
sap.ui.core.format.DateFormat.getDateInstance({pattern : "YYYYMMdd"}).format(yyymmdd);
要看到的javascript日期calcluation和UI5的DateFormat類在行動中,看看這個jsbin: http://jsbin.com/xeyiwic/1/edit?html,output
我認爲JavaScript中的日期操作真的很糟糕。如果您曾經使用過moment.js,那麼一旦您再也不想再回去了:) – cschuff
如果您來自Java世界,您將會知道Javascript本地日期的祝福是什麼。我同意你的看法,即時.js使這種體驗更加美好。 – jpenninkhof
我現在使用sap.m.DatePicker 並按以下方式增加日期。但是當我想設置新的日期時,它會得到一個錯誤,即它不再是日期對象。但是,如果我再次嘗試datePicker.getDateValue();我得到新的日期,但舊日期仍顯示在拾取器中。
var date = datePicker.getDateValue();
date = date.setDate(date.getDate() +1)
datePicker.setDateValue(date);
如果你需要做更多的日期,我會推薦moment.js。 – cschuff