gpt4 book ai didi

javascript - 在 XPage SSJS 中创建日期时间

转载 作者:行者123 更新时间:2023-11-28 12:33:42 24 4
gpt4 key购买 nike

我在 Xpages 中编写了服务器端 JavaScript,如下所示,日期格式为“mm/dd/yyyy”

var date1:NotesDateTime=session.createDateTime("10/15/2013")
var date2:NotesDateTime=session.createDateTime("01/02/2014")
if(date1 <= date2)
{
return "Pass"
}
else
{
return "Fail"
}

这里我应该得到“通过”,但我得到“失败”??????

最佳答案

使用timeDifference方法NotesDateTime比较日期实例,而不是像 < 这样的标准运算符或> :

if (date1.timeDifference(date2) < 0) {
return "Pass";
} else {
return "Fail";
}

注意:以上内容也可以使用 conditional operator 更简洁地表达。 :

return (date1.timeDifference(date2) < 0) ? "Pass" : "Fail";

timeDifference方法本质上是从调用该方法的日期实例中“减去”传递给它的日期,返回以秒为单位的差值。

所以,在上面的例子中,如果 date2晚于date1 ,该方法将返回负数;如果date1晚于date2 ,结果将为正数;结果将是 0如果两个对象表示完全相同的日期和时间。

额外信息:

标准比较运算符不能用于识别这两个变量值之间的定量差异的原因是因为变量是指向“对象”而不是“原始”值的指针。

JavaScript 是一种几乎完全无类型的语言,因此等式运算符 ( == ) 通常仅在用于比较字符串、数字和 bool 值时才可靠,而比较运算符 ( <> 等)通常仅在用于比较数字时才可靠。几乎所有其他东西都可以被视为对象(包括数组)。

具有原始数值的变量只是指向当前值的指针。因此,以下表达式将返回 true :

1 <= 2

但是下面的表达式永远不可能为真:

date1 <= date2

...除非在某个时候您明确地将两个变量设置为指向同一对象的指针:

date1 = date2

因为这些是对象,<=不比较它们所代表的=检查它们是否是指向完全相同的内存对象的指针。除非操作数是原始操作数,否则 <运算符的一半是没有意义的,因为两个对象变量永远不能“小于”彼此,它们只能是指向相同对象的指针或指向不同对象的指针;前者将使它们“相等”,后者则不会,即使两个变量标识的两个对象存储相同的内部值。它们是单独的内存分配,因此 JavaScript 不认为它们彼此相等,并且无法使用标准比较运算符来比较它们的值。

关于javascript - 在 XPage SSJS 中创建日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19394796/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com