由于某种原因,我的代码在日期比较中返回了后退答案。 (SSJS)
我有2个代码块,一个在下面,另一个简单地将if(dtCreated
try{
var sdf = new java.text.SimpleDateFormat("dd-MM-yyyy");
var dtCreated = document1.getItemValueDate("CreatedDate");
var dtCutoff = new Date(2002, 03, 22, 00, 30);
dtCreated = dtCreated == null?"":sdf.format(dtCreated);
dtCutoff = dtCutoff == null?"":sdf.format(dtCutoff);
print("ONE: Created: " + dtCreated);
print("ONE: Cutoff: " + dtCutoff);
if(dtCreated < dtCutoff) {
print ("1.1 created before cutoff return true");
return true;
}else{
print ("1.2 created before cutoff return false")
return false;
}
}catch(e){
openLogBean.addError(e,this.getParent());
}
由于某种原因,似乎使结果混淆了,创建日期在截止日期和日期之后,但它表示创建日期在截止日期之前,反之亦然。
任何想法为何?约会一直是我的致命弱点。每个代码块都在自定义控件的load属性中使用。我的最终目标是显示一个自定义控件,或者如果在某个日期之前或之后创建了一个文档,则显示另一个。
从控制台打印在下面,谢谢:
HTTP JVM: ONE: Created: 26-02-2020
HTTP JVM: ONE: Cutoff: 22-04-2002
HTTP JVM: 1.2 created before cutoff return false
HTTP JVM: TWO: Created: 26-02-2020
HTTP JVM: TWO: Cutoff: 22-04-2002
HTTP JVM: 2.1 created after cutoff return true
问题是您正在比较文本字符串,而不是日期。这样,“ 22 ....”在字母上早于“ 26 ....”。为了进行比较,您要么要获取字段值作为Java日期,然后使用.before()
。此答案涵盖了从字段Set a Java date Object from a Notes DateTime Object获取Java日期。或者,为dtCutOff创建一个Domino DateTime并使用Domino DateTime的timeDifferenceDouble()
方法。