使用SPServices UpdateListItems在SharePoint 2013中设置日期

时间:2015-09-17 17:37:38

标签: javascript jquery sharepoint sharepoint-2013 spservices

我找不到使用SPServices设置SharePoint 2013列表日期的可行解决方案。我已经多次为其他列类型执行此操作,但我无法确定日期的正确格式。这就是我正在做的事情:

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) {
    }
});

我也尝试过这些测试值,但我的网站上没有任何变化:

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";

请告诉我是否有其他日期格式我应该尝试,或者如果您看到此代码有任何其他错误。当我指向我的一个文本字段时,它可以正常工作,所以我很确定这只是日期格式的混乱。

1 个答案:

答案 0 :(得分:2)

UpdateListItems操作需要在ISO 8601 format中提供日期字符串,例如:

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');
    }
});

此外,请确保指定Due Date列的专有名称UpdateListItems操作需要列StaticNames的数组,并且必须为valuepairs指定值。

如果已经通过UI创建了名为Due Date的列,那么将生成Due_x0020_Date静态名称,并且应该像这样指定用于设置其值的操作:

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');
    }
});