Comparing two Glide Date Times (less than or greater than)

JJG
Kilo Guru

I am trying to compare 2 Glide Date Times via script include:

        var answer;
        var dueDate = this.getParameter("sysparm_time");
        gs.info("dueDate: " + dueDate);

        var nowPlus2Hours = new GlideDateTime(gs.nowDateTime());
        var hours = (60 * 60) * 2;
        nowPlus2Hours.addSeconds(hours);
        gs.info("nowPlus2Hours: " + nowPlus2Hours);


        if (dueDate.getDisplayValue() < nowPlus2Hours.getDisplayValue()) {

            answer = false;

        } else {

            answer = true;

        }

        return answer;

 

As you can see, if the due date is less than nowPlus2Hours, it should return false. As it is currently, the script include is always returning true.

 

Output in the logs: (As you can see, the dueDate is less than nowPlus2Hours, which means the script should return false. Instead, it is returning true)

nowPlus2Hours: 2022-02-24 13:12:30

dueDate: 2022-02-24 06:00:00 AM

1 ACCEPTED SOLUTION

I was able to run a check to see if the due date was AM or PM. If it was PM, I added 12 hours to the dueDate variable. It worked after that.

 

var answer;
var dueDate = new GlideDateTime(this.getParameter("sysparm_time"));

var AMorPM = dueDate.indexOf("PM");
if (AMorPM != -1) {
    var add12Hours = (60 * 60) * 12;
    dueDate.addSeconds(add12Hours);
}
var nowPlus2Hours = new GlideDateTime(gs.nowDateTime());
var hours = (60 * 60) * 2;
nowPlus2Hours.addSeconds(hours);
if (dueDate.compareTo(nowPlus2Hours) != -1) {

    answer = "true";

} else {

     answer = "false";

}

return answer;

View solution in original post

5 REPLIES 5

I was able to run a check to see if the due date was AM or PM. If it was PM, I added 12 hours to the dueDate variable. It worked after that.

 

var answer;
var dueDate = new GlideDateTime(this.getParameter("sysparm_time"));

var AMorPM = dueDate.indexOf("PM");
if (AMorPM != -1) {
    var add12Hours = (60 * 60) * 12;
    dueDate.addSeconds(add12Hours);
}
var nowPlus2Hours = new GlideDateTime(gs.nowDateTime());
var hours = (60 * 60) * 2;
nowPlus2Hours.addSeconds(hours);
if (dueDate.compareTo(nowPlus2Hours) != -1) {

    answer = "true";

} else {

     answer = "false";

}

return answer;