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