Javascript 如何更改P13Item TimePicker/DatePicker上的显示格式?

Javascript 如何更改P13Item TimePicker/DatePicker上的显示格式?,javascript,formatting,sapui5,Javascript,Formatting,Sapui5,当所选列类型为日期/时间时,我试图更改sap.m.P13nItem使用的DatePicker/TimePicker上的显示格式 我尝试从P13nFilterPanel更改聚合P13nItem以包含属性formatSettings,但没有成功 下面是我的XML视图代码示例 <P13nFilterPanel id="filterPanel" visible="true" type="filter" containerQuery="true" items="{

当所选列类型为日期/时间时,我试图更改sap.m.P13nItem使用的DatePicker/TimePicker上的显示格式

我尝试从P13nFilterPanel更改聚合P13nItem以包含属性formatSettings,但没有成功

下面是我的XML视图代码示例

<P13nFilterPanel id="filterPanel" visible="true" type="filter" containerQuery="true" items="{
                    path: 'SchedulingFilter>/ColumnCollectionFilter'
                }" filterItems="{
                    path: 'SchedulingFilter>/FilterItems'
                }">
                <P13nItem columnKey="{SchedulingFilter>columnKey}" text="{SchedulingFilter>label}" type="{SchedulingFilter>type}" maxLength="{SchedulingFilter>maxLength}" formatSettings="{SchedulingFilter>formatSettings>" />
                <filterItems>
                    <P13nFilterItem columnKey="{SchedulingFilter>keyField}" operation="{SchedulingFilter>operation}" value1="{SchedulingFilter>value1}" value2="{SchedulingFilter>value2}" exclude="{SchedulingFilter>exclude}" />
                </filterItems>
            </P13nFilterPanel>
控件的默认行为将时间/日期字段显示为:

编辑:我发现默认行为基于用户的区域设置。我不考虑用户的区域设置来更改应用程序其他部分的显示格式


例如,我想在这些字段上实现显示格式“yyyy/MM/dd”和“hh:MM:ss”。

为了解决这个问题,我必须在SAPUI5的1.44.6版本上扩展p13ConditionPanel(这个负责时间/日期组件实例化)和P13nFilterPanel(它创建P13nConditionPanel)。我只需要向DatePicker和TimePicker构造函数添加必要的参数(如下所示)

我在pastebin上发布了自定义扩展组件代码:


稍后,我将在openui5 Github上打开一个增强请求。

为了解决这个问题,我必须在SAPUI5的1.44.6版本上扩展P13ConditionPanel(这一个负责时间/日期组件实例化)和P13FilterPanel(它创建P13ConditionPanel)。我只需要向DatePicker和TimePicker构造函数添加必要的参数(如下所示)

我在pastebin上发布了自定义扩展组件代码:


稍后,我将在openui5 Github上打开一个增强请求。

P13项上的
格式设置中有什么?请注意,如果将日期和时间合并到DateTimePicker中,过滤可能会更容易(如果您可以控制此项,我不确定我的格式设置是否具有以下属性:{pattern:'yyyy/MM/dd',UTC:false}。我对将日期和时间筛选器合并为一个筛选器不感兴趣。p13nitem上的
格式设置中有什么?请注意,如果将日期和时间合并到一个日期时间选择器中,筛选可能会更容易(如果您能控制此项,我不确定我的格式设置是否具有以下属性:{模式:'yyyy/MM/dd',UTC:false}。我对将日期和时间过滤器合并到一个过滤器中不感兴趣。
$.each(columnsKeys, function (i, item) {
            const columnData = {};
            const columnDescriptionItem = columnDescription[item];
            columnData.columnKey = item;
            columnData.text = columnDescriptionItem.label;
            columnData.type = columnDescriptionItem.type;
            columnData.formatSettings = {
                pattern: 'yyyy/MM/dd',
                UTC: false
            };
            columnData.maxLength = columnDescriptionItem.maxLength;
            columnData.visible = columnDescriptionItem.visible;
            columnData.index = columnDescriptionItem.index;
            columnData.isEditable = columnDescriptionItem.isEditable;
            columnData.isFilter = columnDescriptionItem.isFilter;
            columnData.isSorter = columnDescriptionItem.isSorter;
            columnsData.push(columnData);
        });
case "date":
                oConditionGrid.oFormatter = sap.ui.core.format.DateFormat.getDateInstance();
                params.displayFormat = DateFormatter.displayFormat();
                oControl = new sap.m.DatePicker(params);
                break;
case "time":
                oConditionGrid.oFormatter = sap.ui.core.format.DateFormat.getTimeInstance();
                params.displayFormat = TimeFormatter.getDisplayFormat();
                oControl = new sap.m.TimePicker(params);