Date field increment by 1 year based on other date field

SNow35
Giga Guru

Hi All,

I have a date/time field which has the created date of an item, I want to increment it by one year to specify the eligibility date for the user on portal. I have a script include and the date is populated on the confirm box through catalog client script. Please let me know how to achieve this.

Thanks in Advance

7 REPLIES 7

Hi,

 

You can try below.

var gr = new GlideRecord("sc_req_item");
gr.addEncodedQuery('cat_item='+itemId+'^sys_created_on>=javascript:gs.beginningOfLast12Months()^requested_for='+userId);
gr.orderByDesc('sys_created_on');
gr.query();
if(gr.next())
{
var gdt = new GlideDateTime(gr.sys_created_on);
gdt.addDays(365); //replace required number of days
var finaldateis=gdt.getDate();
obj.closedDate = "'" + finaldateis + "'";

}

Sailesh4
Giga Expert

Hi,

 

Please try using the below scripts.

Client script:

var createdDate = g_form.getValue('sys_created_on');
var ga = new GlideAjax('getDate');
ga.addParam('sysparm_name','getMethod');
ga.addParam('sysparm_date',createdDate);
ga.getXML(getResponse);

function getResponse(response){
var answer = response.responseXML.documentElement.getAttribute('answer');
g_form.setValue('validity_date',answer);
}

Script Include:

getMethod: function(){
var createdDate = new GlideDateTime(this.getParameter('sysparm_date'));
var validityDate = createdDate.addDays(365);
return validityDate;
}

Please mark as correct if this solves your issue or mark as helpful.

 

Thanks,

Sailesh J

Hitoshi Ozawa
Giga Sage
Giga Sage

Taking care of leap year.

Client script:

function onChange(control, oldValue, newValue, isLoading) {
   if (isLoading || newValue == '') {
      return;
   }

    var ajax = new GlideAjax('datecalculation');
    ajax.addParam('sysparm_name', 'addOneYear');
    ajax.addParam('sysparm_create_date', newValue);
    ajax.getXMLAnswer(function(answer) {
        if (answer.length > 0) {
            g_form.setValue('eligibility', answer);
        }
    });
}

Script Include:

var datecalculation = Class.create();
datecalculation.prototype = Object.extendsObject(AbstractAjaxProcessor, {
    addOneYear: function() {
        var createDate = this.getParameter('sysparm_create_date');
        var newDate = new GlideDateTime(createDate);
		newDate.addYearsLocalTime(1);
		return newDate;
    },
    type: 'datecalculation'
});