Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

This script is adding the date and not with the time. I want to add the date and time both.

Ankita Mondal
Tera Contributor
var ClientDateTimeUtils = Class.create();
ClientDateTimeUtils.prototype = Object.extendsObject(AbstractAjaxProcessor, {

//Takes a date/time field and adds time to it.  
//params = sysparm_fdt (the first date/time field), sysparm_addtype (type of time to add - second, minute, hour, day, week, month, year), sysparm_addtime (amount of time to add based on the type).  
addDateTimeAmount: function(){  
var firstDT = this.getParameter('sysparm_fdt'); //First Date-Time Field  
var addTYPE = this.getParameter('sysparm_addtype'); //What to add - second (addSeconds()), minute (need to add conversion), hour (need to add conversion), day (addDays()), week (addWeeks()), month (addMonths()), year (addYears())  
var addTIME = this.getParameter('sysparm_addtime'); //How much time to add  
var day = GlideDateTime(firstDT);  
 
if(addTYPE == 'second'){day.addSeconds(addTIME);}  
else if (addTYPE == 'minute'){day.addSeconds(addTIME*60);}  
else if (addTYPE == 'hour'){day.addSeconds(addTIME*(60*60));}  
else if (addTYPE == 'day'){day.addDays(addTIME);}  
else if (addTYPE == 'week'){day.addWeeks(addTIME);}  
else if (addTYPE == 'month'){day.addMonths(addTIME);}  
else if (addTYPE == 'year'){day.addYears(addTIME);}  
else {day.addDays(addTIME);}  
 
//return "First Date: " + firstDT + " -Time to Add: " + addTIME + " -Add Type: " + addTYPE + " -Added Time: " + day;  
return day;  
}
});
2 REPLIES 2

Ankur Bawiskar
Tera Patron
Tera Patron

@Ankita Mondal 

try this

var ClientDateTimeUtils = Class.create();
ClientDateTimeUtils.prototype = Object.extendsObject(AbstractAjaxProcessor, {

	//Takes a date/time field and adds time to it.  
	//params = sysparm_fdt (the first date/time field), sysparm_addtype (type of time to add - second, minute, hour, day, week, month, year), sysparm_addtime (amount of time to add based on the type).  
	addDateTimeAmount: function(){  
		var firstDT = this.getParameter('sysparm_fdt'); //First Date-Time Field  
		var addTYPE = this.getParameter('sysparm_addtype'); //What to add - second (addSeconds()), minute (need to add conversion), hour (need to add conversion), day (addDays()), week (addWeeks()), month (addMonths()), year (addYears())  
		var addTIME = this.getParameter('sysparm_addtime'); //How much time to add  
		var day = new GlideDateTime(firstDT);  

		if(addTYPE == 'second'){day.addSeconds(addTIME);}  
		else if (addTYPE == 'minute'){day.addSeconds(addTIME*60);}  
		else if (addTYPE == 'hour'){day.addSeconds(addTIME*(60*60));}  
		else if (addTYPE == 'day'){day.addDays(addTIME);}  
		else if (addTYPE == 'week'){day.addWeeks(addTIME);}  
		else if (addTYPE == 'month'){day.addMonths(addTIME);}  
		else if (addTYPE == 'year'){day.addYears(addTIME);}  
		else {day.addDays(addTIME);}  

		//return "First Date: " + firstDT + " -Time to Add: " + addTIME + " -Add Type: " + addTYPE + " -Added Time: " + day;  
		return day.getValue();  
	}
});

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

Amit Gujarathi
Giga Sage
Giga Sage

HI @Ankita Mondal ,
I trust you are doing great.
Here's a revised version of your script with comments to help ensure it adds both date and time:

var ClientDateTimeUtils = Class.create();
ClientDateTimeUtils.prototype = Object.extendsObject(AbstractAjaxProcessor, {

    // Adds a specified amount of time to a date/time field.
    addDateTimeAmount: function(){  
        var firstDT = this.getParameter('sysparm_fdt'); // The first Date-Time Field
        var addTYPE = this.getParameter('sysparm_addtype'); // Type of time to add
        var addTIME = this.getParameter('sysparm_addtime'); // Amount of time to add

        var day = new GlideDateTime(firstDT); // Initialize GlideDateTime with the provided date-time

        // Determine the type of addition (second, minute, hour, day, week, month, year)
        switch (addTYPE) {
            case 'second':
                day.addSeconds(addTIME);
                break;
            case 'minute':
                day.addSeconds(addTIME * 60); // 60 seconds in a minute
                break;
            case 'hour':
                day.addSeconds(addTIME * 3600); // 3600 seconds in an hour
                break;
            case 'day':
                day.addDays(addTIME);
                break;
            case 'week':
                day.addWeeks(addTIME);
                break;
            case 'month':
                day.addMonths(addTIME);
                break;
            case 'year':
                day.addYears(addTIME);
                break;
            default:
                day.addDays(addTIME); // Default to adding days
        }

        // The returned value includes both date and time
        return day.getDisplayValue(); // Use getDisplayValue() to return the date and time in a human-readable format
    }
});

Was this answer helpful?


Please consider marking it correct or helpful.


Your feedback helps us improve!


Thank you!


Regards,


Amit Gujrathi