Thursday, 28 September 2017

Add/Update Datetime Field in ECMA Script

Code Used
var addBrowserUtcOffset = function (date) {
    var utcOffsetMinutes = date.getTimezoneOffset();
    var newDate = new Date(date.getTime());
    newDate.setTime(newDate.getTime() - (utcOffsetMinutes*60*1000));

    return newDate;
}


function updateListItem() {
    this.clientContext = new SP.ClientContext();
    var date = new Date(2012, 8, 17, 5, 0);
    console.log(date);
    this.isoDate = clientContext.get_web().get_regionalSettings().get_timeZone().localTimeToUTC(date.toISOString());

    clientContext.executeQueryAsync(
        Function.createDelegate(this, this.onGetDate),
        Function.createDelegate(this, this.onQueryFailed)
    );
}

function onGetDate() {
    var dateToInsert = addBrowserUtcOffset(this.isoDate.get_value());

    var oList = this.clientContext.get_web().get_lists().getByTitle('testlist');
    var oListItem = oList.getItemById(1);
    oListItem.set_item('dateField', dateToInsert.toISOString());
    oListItem.update();

    this.clientContext.executeQueryAsync(
        Function.createDelegate(this, this.onUpdate),
        Function.createDelegate(this, this.onQueryFailed)
    );
}

function onUpdate() {
    console.log('DONE');
}

function onQueryFailed(sender, args) {
    console.log('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}

updateListItem();