Example: update ListItem datetime field "dateField" (only for SharePoint 2013)
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();