Use SPServices UpdateListItems to set date in SharePoint 2013

greenbellpepper picture greenbellpepper · Sep 17, 2015 · Viewed 8.6k times · Source

I cannot find a working solution to set a SharePoint 2013 list date using SPServices. I have done this multiple times for other column types, but I can't figure out the right format for dates. Here's what I'm doing:

var testdate = "2016-01-01 00:00:00";
$().SPServices({
    operation: "UpdateListItems",
    async: false,
    listName: "Requests",
    ID: 4,
    valuepairs: [["Due Date", testdate]],
    completefunc: function (xData, Status) {
    }
});

I have also tried it with these test values, but nothing changes on my site:

var testdate = "2016-1-1 0:0:0";
var testdate = "2016-01-01T00:00:00Z";
var testdate = "2016-1-1T0:0:0Z";
var testdate = "2016-01-01T00:00:00";
var testdate = "2016-1-1T0:0:0";

Please let me know if there's another date format I should try, or if you see anything else wrong with this code. It works when I point to one of my text fields, so I'm pretty sure it's just the date format that's messing things up.

Answer

Vadim Gremyachev picture Vadim Gremyachev · Sep 18, 2015

UpdateListItems operation expects date string to be provided in ISO 8601 format, for example:

var dueDateVal = new Date('2016-01-01 6:00:00').toISOString();
$().SPServices({
    operation: "UpdateListItems",
    async: false,
    listName: "Requests",
    ID: 1,
    valuepairs: [["DueDate", dueDateVal]],
    completefunc: function (xData, Status) {
         console.log('List items has been updated');
    }
});

In addition, make sure the proper name of Due Date column is specified. UpdateListItems operation expects an array of column StaticNames and values have to be specified for valuepairs.

If column named Due Date has been created via UI, then Due_x0020_Date static name will be generated and the operation for setting its value the should be specified like this:

var dueDateVal = new Date('2016-01-01 6:00:00').toISOString();
$().SPServices({
    operation: "UpdateListItems",
    async: false,
    listName: "Requests",
    ID: 1,
    valuepairs: [["Due_x0020_Date", dueDateVal]],
    completefunc: function (xData, Status) {
         console.log('List items has been updated');
    }
});