如何在 SAPUI5 中 select 日历周?
How to select a calendar week in SAPUI5?
我正在寻找一种方法 select 只需一个日历周 DatePicker
。
有没有办法以某种方式配置该控件,它允许选择一周并发送本周外的 DateTime
元素?
我检测到以下带有格式选项列表的条目,但星期格式似乎不起作用:
http://scn.sap.com/community/developer-center/front-end/blog/2013/04/28/working-with-odata-dates
此代码似乎不起作用:
new sap.m.DatePicker({
value : {
path : "DateTime",
type : new sap.ui.model.type.Date({pattern: "w yy"})
}
}),
绑定到 Edm:DateTime
类型的 OData 属性 DateTime
注意事项:
虽然 SAPUI5 说它支持一年中的几周,但目前不支持! //我测试了
为什么?在 SAPUI5DateFormat.js 文件中
case "weekInYear":
sWeek = "";
//TODO getWeek does not exist on Date object
//-> this is a preparation for a future or custom week support
if (oDate.getWeek) {
sWeek += oDate.getWeek();
}
aBuffer.push(jQuery.sap.padLeft(sWeek, "0", oPart.iDigits));
break;
如您所见,它在 TODO 列表中!!
解决方法?是的:
jQuery.sap.require("sap.ui.core.format.DateFormat");
//define getWeek function
Date.prototype.getWeek = function () {
var d = new Date(+this);
d.setHours(0, 0, 0);
d.setDate(d.getDate() + 4 - (d.getDay() || 7));
return Math.ceil((((d - new Date(d.getFullYear(), 0, 1)) / 8.64e7) + 1) / 7);
};
var oDateFormat = sap.ui.core.format.DateFormat.getDateInstance({
pattern: "w y"
});
var oDatePicker = new sap.m.DatePicker({
dateValue: new Date(),
displayFormat: "w y"
})
我正在寻找一种方法 select 只需一个日历周 DatePicker
。
有没有办法以某种方式配置该控件,它允许选择一周并发送本周外的 DateTime
元素?
我检测到以下带有格式选项列表的条目,但星期格式似乎不起作用: http://scn.sap.com/community/developer-center/front-end/blog/2013/04/28/working-with-odata-dates
此代码似乎不起作用:
new sap.m.DatePicker({
value : {
path : "DateTime",
type : new sap.ui.model.type.Date({pattern: "w yy"})
}
}),
绑定到 Edm:DateTime
DateTime
注意事项:
虽然 SAPUI5 说它支持一年中的几周,但目前不支持! //我测试了
为什么?在 SAPUI5DateFormat.js 文件中
case "weekInYear":
sWeek = "";
//TODO getWeek does not exist on Date object
//-> this is a preparation for a future or custom week support
if (oDate.getWeek) {
sWeek += oDate.getWeek();
}
aBuffer.push(jQuery.sap.padLeft(sWeek, "0", oPart.iDigits));
break;
如您所见,它在 TODO 列表中!!
解决方法?是的:
jQuery.sap.require("sap.ui.core.format.DateFormat");
//define getWeek function
Date.prototype.getWeek = function () {
var d = new Date(+this);
d.setHours(0, 0, 0);
d.setDate(d.getDate() + 4 - (d.getDay() || 7));
return Math.ceil((((d - new Date(d.getFullYear(), 0, 1)) / 8.64e7) + 1) / 7);
};
var oDateFormat = sap.ui.core.format.DateFormat.getDateInstance({
pattern: "w y"
});
var oDatePicker = new sap.m.DatePicker({
dateValue: new Date(),
displayFormat: "w y"
})