我有一个日期选择器,用户只需选择一个日期,然后动态操作就会发出警告,如果用户明天点击(sysdate + 1)。
Datepicker术语是简单的布局。
动态行动 - >
名称:有效日期
事件:更改
选择类型:项目
项目:datepicker_name
条件:等于
值:sysdate + 1
当我运行程序并点击日历上的任何一天时,不会出现警报。我认为问题是格式。动态操作将日期视为" DD / MM / YYYY"而Datepickers的输出是" DD-Mon-YY"所以它无法比较它们。苹果和橘子。但是我玩这种格式使它完全相同但仍没有进展。
再次感谢您的时间和帮助!
答案 0 :(得分:0)
正如@ScottWe所提到的:您正在尝试在HTML / javascript中应用PLSQL逻辑。 '何时 - 条件'在运行时进行评估,因此您无法在那里使用PLSQL。 日期算术在javascript中有点烦人,所以如果您不熟悉它,这里有一种方法可以执行检查(明天是否输入日期)。
从这些中找出线索:
Date difference in Javascript (ignoring time of day)
JavaScript how to get tomorrows date in format dd-mm-yy
将此功能添加到页面的全局变量和函数的javascript部分:
NSScrollView
然后在您的动态动作'何时'条件,使用带有以下代码的javascript表达式:
function isTomorrow(pDateItem){
function getTomorrow(){
var tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate() + 1);
return tomorrow;
};
function cutTime(pDate){
return new Date(pDate.getFullYear(), pDate.getMonth(), pDate.getDate());
};
// check if pDateItem leads to a selection
// check if it is a datepicker
// check if a date has been selected
if ( $(pDateItem).length
&& $(pDateItem).data("datepicker")
&& $(pDateItem).datepicker("getDate") !== null
)
{
var tomorrow = getTomorrow();
var check = $(pDateItem).datepicker("getDate");
var one = cutTime(check);
var two = cutTime(tomorrow);
return one.getDate() === two.getDate();
};
return false;
}
然后相应的True Actions只会在日期设置为明天时触发。