Javascript 如何在MarkLogic中获取两个xs.date的天数差?

Javascript 如何在MarkLogic中获取两个xs.date的天数差?,javascript,datetime,marklogic,Javascript,Datetime,Marklogic,获取两个xs.date类型之间的天数(数字)差的适当函数是什么 var date1 = new Date(); var date2 = new Date(); date1 = xs.date("2018-03-29"); date2 = xs.date("2018-04-15"); 我尝试使用fn.daysFromDuration函数(参见下面的示例),但它没有返回表示天数差异的数值。它正在返回一个xs.dayTimeDuration: var dateDiff = new Date();

获取两个
xs.date
类型之间的天数(数字)差的适当函数是什么

var date1 = new Date();
var date2 = new Date();

date1 = xs.date("2018-03-29");
date2 = xs.date("2018-04-15");
我尝试使用
fn.daysFromDuration
函数(参见下面的示例),但它没有返回表示天数差异的数值。它正在返回一个
xs.dayTimeDuration

var dateDiff = new Date();
dateDiff = fn.daysFromDuration(date2 - date1);

您不能像在XQuery中一样,在JavaScript中使用
date2-date1
来计算日期之间的差异并生成
xs.dayTimeDuration

在SJS模块中,使用from
xs.date
对象,然后可以使用以数字形式获取天数:

const date1 = xs.date("2018-03-29");
const date2 = xs.date("2018-04-15");

fn.daysFromDuration(date2.subtract(date1));

请注意,fn.daysFromDuration不会将月或年转换为天。幸运的是,xs.date.subtract只返回带有天组件的持续时间。