CTO*_*ton 4 date google-apps-script google-tasks google-tasks-api
如何在应用程序脚本中使用 Google 任务服务设置任务的截止日期?
尝试将此值设置为给定日期,但这似乎只更新本地值而不是服务器值,如 tehhowch 所建议的那样
task.due = new Date();
Run Code Online (Sandbox Code Playgroud)
你如何更新服务器?这是我尝试过的
var x = {
due: new Date()
};
Tasks.Tasks.update(x, "MDE2NzI3NTAzNjc5NTQ1ODY5MTY6MDow", task);
Run Code Online (Sandbox Code Playgroud)
但它会抛出错误
Invalid value for: Invalid format: "Tue Apr 10 20:45:26 GMT-04:00 2018"
Run Code Online (Sandbox Code Playgroud)
我使用此代码创建了此项目,以使 Google Tasks 保持最新状态:
根据任务资源的 Google Tasks API 文档,该due参数必须是RFC 3339 时间戳。所以"Tue Apr 10 20:45:26 GMT-04:00 2018"应该是"2018-04-11T0:45:26.000Z". 请参阅相关问题:生成类似于 Google Tasks API 的 RFC 3339 时间戳?
这与任务的其他属性使用的格式相同datetime,因此如果要记录任务:
console.log(Tasks.Tasks.get(listId, taskId));
Run Code Online (Sandbox Code Playgroud)
然后due,completed和updated属性(如果存在)将指示所需的格式。
从 Google Apps 脚本中的本机 JavascriptDate中,最简单的方法是:
function getExtension(listId, taskId) {
var now = new Date();
var deadline = new Date(Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate() + 7));
var newTask = {
due: Utilities.formatDate(deadline, "GMT", "yyyy-MM-dd'T'HH:mm:ss'Z'")
};
// Since we supply only a partial resource, call .patch() rather than .update()
Tasks.Tasks.patch(newTask, listId, taskId);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2972 次 |
| 最近记录: |