SAPUI5计算日期并设置为日期选择器输入字段-格式化问题

2020-09-30 01:49发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我有两个输入字段(日期选择器),我想将默认日期设置为dateFrom和dateTo。 dateTo包含当前日期,我将其设置为默认日期,如下所示:

 setCreatedToDate:function(){
 var currentDate = new Date();
 var oToDate = this.getView()。byId('__ CreatedOnTo')
 oToDate.setDateValue(currentDate);
 },

这很好。

对于dateFrom,我需要使用当前日期-30天,然后尝试将其设置为默认日期,它将返回错误:

Date必须是一个JavaScript日期对象; 元素sap.m.DatePicker #__ xmlview1 --__ CreatedOnFrom

我试图更改计算部分之后的日期格式,但是它不起作用:

 setCreatedFromDate:function(){

   var oFormatYyyymmdd = null;
   this.oFormatYyyymmdd = sap.ui.core.format.DateFormat.getInstance({
   oFormatYyyymmdd:null,
   模式:" yyyy-MM-dd",
   calendarType:sap.ui.core.CalendarType.Gregorian
   });

 var fromDate = new Date();
 var prevDate = fromDate.setDate(fromDate.getDate()-30);
 var oFromDate = this.getView()。byId('__ CreatedOnFrom')
 var oToDate = this.oFormatYyyymmdd.format(fromDate);
 oFromDate.setDateValue(oToDate);
 },

因此,我需要以哪种格式将值返回到输入字段,使其在上述情况下可以正常工作? 现在,格式yyyy-MM-dd不起作用。

谢谢

蒂姆

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我有两个输入字段(日期选择器),我想将默认日期设置为dateFrom和dateTo。 dateTo包含当前日期,我将其设置为默认日期,如下所示:

 setCreatedToDate:function(){
 var currentDate = new Date();
 var oToDate = this.getView()。byId('__ CreatedOnTo')
 oToDate.setDateValue(currentDate);
 },

这很好。

对于dateFrom,我需要使用当前日期-30天,然后尝试将其设置为默认日期,它将返回错误:

Date必须是一个JavaScript日期对象; 元素sap.m.DatePicker #__ xmlview1 --__ CreatedOnFrom

我试图更改计算部分之后的日期格式,但是它不起作用:

 setCreatedFromDate:function(){

   var oFormatYyyymmdd = null;
   this.oFormatYyyymmdd = sap.ui.core.format.DateFormat.getInstance({
   oFormatYyyymmdd:null,
   模式:" yyyy-MM-dd",
   calendarType:sap.ui.core.CalendarType.Gregorian
   });

 var fromDate = new Date();
 var prevDate = fromDate.setDate(fromDate.getDate()-30);
 var oFromDate = this.getView()。byId('__ CreatedOnFrom')
 var oToDate = this.oFormatYyyymmdd.format(fromDate);
 oFromDate.setDateValue(oToDate);
 },

因此,我需要以哪种格式将值返回到输入字段,使其在上述情况下可以正常工作? 现在,格式yyyy-MM-dd不起作用。

谢谢

蒂姆

付费偷看设置
发送
2条回答
悠然的二货
1楼 · 2020-09-30 02:12.采纳回答

嗨,

为什么要更改格式,它不需要在当前日期前30天并将其设置为oFromDate。

不需要下面的代码:

 var oFormatYyyymmdd = null;
   this.oFormatYyyymmdd = sap.ui.core.format.DateFormat.getInstance({
   oFormatYyyymmdd:null,模式:" yyyy-MM-dd",
   calendarType:sap.ui.core.CalendarType.Gregorian
   }); //不需要

var oToDate = this.oFormatYyyymmdd.format(fromDate); //不需要

 var prevDate = fromDate.setDate(fromDate.getDate()-30); //错误的获取前30天的方式

更正的代码:

 var fromDate = newDate();
 var oFromDate = this.getView()。byId('__ CreatedOnFrom')

 var prevDate = this._manipulateDate(fromDate,30," sub");
 oFromDate.setDateValue(prevDate);},

manipulateDate:function(date,days,operation)

{ var dateOffset =(24 * 60 * 60 * 1000)*天;

var myDate = new Date();

if(operation ===" sub") {

myDate.setTime(date.getTime()-dateOffset);

}

否则(操作===" add")

{

myDate.setTime(date.getTime()+ dateOffset);

}

返回myDate;

},

感谢

Viplove

浮生未央
2楼-- · 2020-09-30 02:13

感谢Viplove!

一周热门 更多>