我找不到使用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";
请让我知道是否有另一种日期格式我应该尝试,或者如果你看到任何其他错误的代码。当我指向其中一个文本字段时,它会工作,所以我很确定是日期格式把事情搞砸了。
UpdateListItems
操作期望以ISO 8601格式提供日期字符串,例如:
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
操作需要一个列静态名称数组,并且必须为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');
}
});