(XPages) Как я могу написать код для подсчета количества дней между датами? - PullRequest
0 голосов
/ 01 апреля 2020

У меня есть имя поля, которое называется "REF_DATE". Формат "REF_DATE"'s - "YYYY/MM/DD".

Мне нужно рассчитать количество дней с сегодняшнего дня до "REF_DATE".

Например:

REF_DATE = 2020/01/09

Today = 2020/04/01

Ниже я попробовал код:

var s1 = "2020/01/09";
var s2 = "2020/04/01";
var aDate = s1.split("/");
var oDate1 = Date.UTC(aDate[1],aDate[2],aDate[0]);
var bDate = s2.split("/");
var oDate2 = Date.UTC(bDate[1],bDate[2],bDate[0]);
var iDays = Math.floor((oDate2 - oDate1)/86400000);
return oDate1+"<br>"+oDate2+"<br>"+iDays+"<br>";

Но xpages показал "853".

Итак, мне нужно, чтобы вы, ребята, помогли мне подсчитать количество дней между датами.

Спасибо !!!!!!

1 Ответ

1 голос
/ 02 апреля 2020

Передайте год в качестве первого параметра Date.UT C и вычтите 1 из месяца (0 - январь):

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">    
<xp:this.beforePageLoad><![CDATA[#{javascript:
    var s1 = "2020/01/09";
    var s2 = "2020/04/01";
    var aDate = s1.split("/");
    var oDate1 = Date.UTC(Number(aDate[0]), Number(aDate[1]-1), Number(aDate[2]));

    var aDate = s2.split("/");
    var oDate2 = Date.UTC(Number(aDate[0]), Number(aDate[1]-1), Number(aDate[2]));

    var iDays = Math.floor((oDate2 - oDate1) /1000/60/60/24);
    print(iDays);
}]]></xp:this.beforePageLoad>
</xp:view>
...