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