SAC应用程序设计器-将日期DD/MM/YYYY转换为内部格式

2020-08-15 02:49发布

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

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


您好专家

在SAC Application Designer中,我需要获取用户输入日期(DD/MM/YYYY)并在脚本中内部计算DD/MM/YYYY -2天(给定日期-2),该日期将被传递 输入CDS查询。 到目前为止,我想在前端而不是在CDS级别执行此计算。

我面临的问题是将DD/MM/YYYY转换为内部Java Script Date格式,

我尝试了以下2个选项,但不起作用

1。 var day_ext = Input_Date.getValue(); //day_ext的日期为DD/MM/YYYY

var mydate = new Date(day_ext);

console.log(mydate.toDateString()); //错误消息-无法将字符串转换为整数

因此,我尝试使用以下函数将字符串转换为整数,然后使用整数输出获取内部日期格式,但是它也无法正常工作。

2。 var datem2 = day_ext.substring(6,10)+ day_ext.substring(3,5)+ day_ext.substring(0,2); //yyyymmdd,尝试使用所有其他格式var Dateint = ConvertUtils.stringToInteger(datem2);

console.log(Dateint); //Dateint的格式为yyyymmdd,以整数

能否让我知道如何将DD/MM/YYYY转换为等于日期的整数值,该整数值可用于获取SAC日期格式。

关于

B

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

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


您好专家

在SAC Application Designer中,我需要获取用户输入日期(DD/MM/YYYY)并在脚本中内部计算DD/MM/YYYY -2天(给定日期-2),该日期将被传递 输入CDS查询。 到目前为止,我想在前端而不是在CDS级别执行此计算。

我面临的问题是将DD/MM/YYYY转换为内部Java Script Date格式,

我尝试了以下2个选项,但不起作用

1。 var day_ext = Input_Date.getValue(); //day_ext的日期为DD/MM/YYYY

var mydate = new Date(day_ext);

console.log(mydate.toDateString()); //错误消息-无法将字符串转换为整数

因此,我尝试使用以下函数将字符串转换为整数,然后使用整数输出获取内部日期格式,但是它也无法正常工作。

2。 var datem2 = day_ext.substring(6,10)+ day_ext.substring(3,5)+ day_ext.substring(0,2); //yyyymmdd,尝试使用所有其他格式var Dateint = ConvertUtils.stringToInteger(datem2);

console.log(Dateint); //Dateint的格式为yyyymmdd,以整数

能否让我知道如何将DD/MM/YYYY转换为等于日期的整数值,该整数值可用于获取SAC日期格式。

关于

B

付费偷看设置
发送
6条回答
何必丶何苦呢
1楼-- · 2020-08-15 03:32

亲爱的Balaji

尝试以下操作

将您的输入转换为字符串。 然后将其子字符串化为日期变量。 然后使用日期计算

 var str =" 2020.05.05";  <==您的输入已转换为字符串
 var year = ConvertUtils.stringToInteger(str.substr(0,4));
 var month = ConvertUtils.stringToInteger(str.substr(5,2));
 var day = ConvertUtils.stringToInteger(str.substr(7,2));
 var date = DateFormat.format(new Date(year,month,day)," MM/dd/yyyy");
 

然后使用日期函数减去2

问候,

Venkat

d56caomao
2楼-- · 2020-08-15 03:35

嗨Mukesh,

< p>欢迎。

您可以单击upvote(如)正确答案,它也会对其他人有帮助。

谢谢,

Saurabh S。

奄奄一息的小鱼
3楼-- · 2020-08-15 03:35

以上所有代码都是正确的,只是区别是月份从零开始。

0 = jan

1 = 2月

2 = 三月

3 =四月

4 =五月

ETC。

请参考以下代码。

  var day_ext = Input_Date.getValue();//日期DD/MM/YYYY
 console.log(day_ext);//我输入的日期示例:03/04/2020
 var year = ConvertUtils.stringToInteger(day_ext.substring(6,10));
 var month = ConvertUtils.stringToInteger(day_ext.substring(3,5));
 var day = ConvertUtils.stringToInteger(day_ext.substring(0,2));
 var date_s = DateFormat.format(newDate(year,month-1,day)," MM/dd/yyyy");
 console.log(date_s);
 var daten = newDate(date_s);//问题2语法错误-无法将字符串转换为整数
 daten.setDate(daten.getDate()-2);//不确定是否适用于MM/dd/yyyy格式
太Q了
4楼-- · 2020-08-15 03:30

能否关闭 问题。

谢谢与问候,

Saurabh S。

huskylover
5楼-- · 2020-08-15 03:22

Hello Venkat,

非常感谢您的答复。

我尝试了您的逻辑,但仍然面临着两个相同的问题

 var day_ext = Input_Date.getValue(); //日期为DD/MM/YYYY
 console.log(day_ext); //我的输入日期示例:2020年3月4日
 var year = ConvertUtils.stringToInteger(day_ext.substring(6,10));
 var month = ConvertUtils.stringToInteger(day_ext.substring(3,5));
 var day = ConvertUtils.stringToInteger(day_ext.substring(0,2));
 var date_s = DateFormat.format(new Date(year,month,day)," MM/dd/yyyy");
 console.log(date_s);//问题1转换后其为05/03/2020而非04/03/2020

//给出日期-2
 var daten = new Date(date_s); //第2期语法错误-无法将字符串转换为Integer
 daten.setDate(daten.getDate()-2); //不确定是否适用于MM/dd/yyyy格式

 

1。 转换为新格式后的日期错误,请检查控制台语句中的注释。

2。 您能让我知道您指的是什么日期函数,从MM/dd/yyyy中减去2天吗?

此致

B

粗暴的香蕉
6楼-- · 2020-08-15 03:28

嗨,

非常感谢您的答复。

似乎没有直接方法可以计算出用户输入格式或转换为日期MM/dd/yyyy之后的天数偏移量。

很遗憾,目前SAC应用程序设计器中不提供/不支持许多JavaScript或Design Studio功能。

所以我不得不在CDS级别上解决问题的逻辑。

此致

B

一周热门 更多>