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.

How to set due date using client script?

nthumma
Giga Guru

I want to set due date = current date + 3 days ?

Thanks in advance.

1 ACCEPTED SOLUTION

Hello srnewbie,



You beat me to it!



Here is my code, yours look way cleaner. Thank you for sharing your solution.



function onLoad() {


var today = new Date();


var inThreeDays = new Date();


inThreeDays.setDate(today.getDate() + 3);


var inThreeDaysFormatted = inThreeDays.getFullYear()   + '-' + ('0' + (inThreeDays.getMonth() + 1)).slice(-2) + '-' + ('0' + (inThreeDays.getDate() + 1)).slice(-2);


console.log(inThreeDaysFormatted);


g_form.setValue('due_date',inThreeDaysFormatted   );


 


}



Thanks.


View solution in original post

10 REPLIES 10

Mike Allen
Mega Sage

I think you need to do an AJAX call with a gs.daysAgo to do this:




threeDays: function(){


          return gs.daysAgo(-3);


}




or something like that.


i used AJAX call from this article Client Script Date/Time Functions



but i am getting null value in return.



function setDueDate(num_of_days)


{


var cdt = g_form.getValue('opened_at');


var addtime = num_of_days;


var addtype = 'day';


var ajax = new GlideAjax('ClientDateTimeUtils');


ajax.addParam('sysparm_name', 'addDateAmount');


ajax.addParam('sysparm_fdt', cdt);


ajax.addParam('sysparm_addtime', addtime);


ajax.addParam('sysparm_addtype', addtype);


ajax.getXML(doSomething);


function doSomething(response){


      var answer = response.responseXML.documentElement.getAttribute("answer");


      alert(answer);


}


}



this what my cdt value looks like --> String {0: "2", 1: "0", 2: "1", 3: "5", 4: "-", 5: "0", 6: "7", 7: "-", 8: "0", 9: "7", 10: " ", 11: "0", 12: "9", 13: ":", 14: "0", 15: "3", 16: ":", 17: "4", 18: "9", length: 19, [[PrimitiveValue]]: "2015-07-07 09:03:49"}



any thoughts?


Mike Allen


Can you post your script include?


var ClientDateTimeUtils = Class.create();


ClientDateTimeUtils.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {



//Takes a Single Date/Time Field and returns its time difference from nowDateTime().


//params = sysparm_fdt (the first date/time field), sysparm_difftype (time based format to return result. See "_calcDateDiff" function comments)


getNowDateTimeDiff: function(){


var firstDT = this.getParameter('sysparm_fdt'); //First Date-Time Field


var diffTYPE = this.getParameter('sysparm_difftype'); // Date-Time Type to return the answer as. Can be second, minute, hour, day


var diff = gs.dateDiff(gs.nowDateTime(), firstDT, true);


var timediff = this._calcDateDiff(diffTYPE, diff);


//return "getNowDateTimeDiff: FIRST DT: " + firstDT + " -DIFFTYPE: " + diffTYPE + " -TIME DIFF: " + timediff;


return timediff;


},



//Diff the amount of time between two different Date/Time fields


//params = sysparm_fdt (the first date/time field), sysparm_sdt (second date/time field), sysparm_difftype (time based format to return result. See "_calcDateDiff" function comments)


getDateTimeDiff: function(){


var firstDT = this.getParameter('sysparm_fdt'); //First Date-Time Field


var secondDT = this.getParameter('sysparm_sdt'); // Second Date-Time Field


var diffTYPE = this.getParameter('sysparm_difftype'); // Date-Time Type to return the answer as. Can be second, minute, hour, day


var diff = gs.dateDiff(firstDT, secondDT, true);


var timediff = this._calcDateDiff(diffTYPE, diff);


//return "getDateTimeDiff: FIRST DT: " + firstDT + " -SECOND DT: " + secondDT + " -DIFFTYPE: " + diffTYPE + " -TIME DIFF: " + timediff;


return timediff;


},



//Takes your date/time field and returns the amount of time before now. A positive is time before now, a negative number is after now.


//params = sysparm_fdt (the first date/time field), sysparm_difftype (time based format to return result. See "_calcDateDiff" function comments)


getDateTimeBeforeNow: function(){


var firstDT = this.getParameter('sysparm_fdt'); //First Date-Time Field


var diffTYPE = this.getParameter('sysparm_difftype'); // Date-Time Type to return the answer as. Can be second, minute, hour, day


var diff = gs.dateDiff(firstDT, gs.nowDateTime(), true);


var timediff = this._calcDateDiff(diffTYPE, diff);


//return "getDateTimeBeforeNow: FIRST DT: " + firstDT + " -DIFFTYPE: " + diffTYPE + " -TIME DIFF: " + timediff;


return timediff;


},



//Returns true if it is before now, and false if it is after now.


//params = sysparm_fdt (the first date/time field)


getDateTimeBeforeNowBool: function(){


var firstDT = this.getParameter('sysparm_fdt'); //First Date-Time Field


var diff = gs.dateDiff(firstDT, gs.nowDateTime(), true);


var answer = '';


if (diff >= 0){answer = 'true';}


else {answer = 'false';}


return answer;


},



//Returns the Date/Time of right now.


getNowDateTime: function(){


var now = gs.nowDateTime(); //Now Date/Time


return now;


},



//Returns the Date right now.


getNowDate: function(){


var now = GlideDate();; //Now Date


return now.getLocalDate();


},



//Returns the Time of right now.


getNowTime: function(){


var now = GlideTime();; //Now Time


var modnow = now.getLocalTime().toString().split(' ');


return modnow[1];


},



//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;


},



//Takes a glide date field and adds time to it.


//params = sysparm_fdt (the first date/time field), sysparm_addtype (type of time to add - day, week, month, year),sysparm_addtime (amount of time to add based on the type).


addDateAmount: function(){


var firstDT = this.getParameter('sysparm_fdt'); //First Date Field


var addTYPE = this.getParameter('sysparm_addtype'); //What to add - day (addDays()), week (addWeeks()), month (addMonths()), year (addYears())


var addTIME = this.getParameter('sysparm_addtime'); //How much time to add


var day = GlideDate();


day.setValue(firstDT);



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;


},



addTimeAmount: function(){


var firstDT = this.getParameter('sysparm_fdt'); //First Date-Time Field


var addTYPE = this.getParameter('sysparm_addtype'); //What


var addTIME = this.getParameter('sysparm_addtime'); //How much time to add


var time = GlideTime();


time.setValue(firstDT);



if(addTYPE == 'second'){time.addSeconds(addTIME);}


else if (addTYPE == 'minute'){time.addSeconds(addTIME*60);}


else if (addTYPE == 'hour'){time.addSeconds(addTIME*(60*60));}


else {time.addSeconds(addTIME);}



var modtime = time.toString().split(' ');


//return "First Date: " + firstDT + " -Time to Add: " + addTIME + " -Add Type: " + addTYPE + " -Added Time: " + time;


return modtime[1];


},



//Private function to calculate the date difference return result in second, minute, hour, day.


_calcDateDiff: function(diffTYPE, seconds){


var thisdiff;


if (diffTYPE == "day"){thisdiff = seconds/86400;}


else if (diffTYPE == "hour"){thisdiff = seconds/3600;}


else if (diffTYPE == "minute"){thisdiff = seconds/60;}


else if (diffTYPE == "second"){thisdiff = seconds;}


else {thisdiff = seconds;}


return thisdiff;


}




});


Capture.JPG



Mike Allen