对于UI5中的简单请假申请,我需要在每次按下按钮时将新sap.ui.commons.DatePicker的日期增加或减少一天,如何获取并设置新日期?
问题是DatePicker只返回Date的字符串。我已经尝试了新的Date(datePicker.getYyyymmdd()),但后来又回到了Invalide日期。
答案 0 :(得分:0)
可以找到将字符串解析为日期对象的可能解决方案here或here。
您还应该考虑切换到sap.m.DatePicker,因为版本> = 1.38中不推荐使用sap.ui.commons.DatePicker(不知道您使用的是哪个版本)。 sap.m.DatePicker也有方法getDateValue,它应该已经返回一个日期对象。
答案 1 :(得分:0)
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日期计算和UI5的DateFormat类,请查看此jsbin: http://jsbin.com/xeyiwic/1/edit?html,output