我找不到使用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";
请告诉我是否有其他日期格式我应该尝试,或者如果您看到此代码有任何其他错误。当我指向我的一个文本字段时,它可以正常工作,所以我很确定这只是日期格式的混乱。
答案 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');
}
});