Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 如何设置Google任务到期日_Date_Google Apps Script_Google Tasks Api_Google Tasks - Fatal编程技术网

Date 如何设置Google任务到期日

Date 如何设置Google任务到期日,date,google-apps-script,google-tasks-api,google-tasks,Date,Google Apps Script,Google Tasks Api,Google Tasks,如何使用应用程序脚本中的google tasks服务设置任务的截止日期 尝试将此值设置为给定日期,但这似乎只更新本地值,而不是tehhowch建议的服务器值 task.due = new Date(); 如何更新服务器?这是我试过的 var x = { due: new Date() }; Tasks.Tasks.update(x, "MDE2NzI3NTAzNjc5NTQ1ODY5MTY6MDow", task); 但它抛出了错误 Invalid value for: Inval

如何使用应用程序脚本中的google tasks服务设置任务的截止日期

尝试将此值设置为给定日期,但这似乎只更新本地值,而不是tehhowch建议的服务器值

task.due = new Date();
如何更新服务器?这是我试过的

var x = {
    due: new Date()
};
Tasks.Tasks.update(x, "MDE2NzI3NTAzNjc5NTQ1ODY5MTY6MDow", task);
但它抛出了错误

Invalid value for: Invalid format: "Tue Apr 10 20:45:26 GMT-04:00 2018"

已完成项目 我使用此代码创建此项目,以使Google任务保持最新:


根据的Google Tasks API文档,
due
参数必须为。因此,与其说是“2018年4月10日星期二20:45:26 GMT-04:00 2018”,不如说是“2018-04-11T0:45:26.000Z”。见相关问题:

这与任务的其他
datetime
属性使用的格式相同,因此如果要记录任务:

console.log(Tasks.Tasks.get(listId, taskId));
然后
到期
完成
更新
属性(如果存在)将指示所需的格式

从Google Apps脚本中的本机Javascript
Date
,最简单的方法是:

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

继续,检查@tehhowch,但这里有一个例程,由任务API中的教程组成,该例程将完成所有任务,如果当前任务的到期日是过去的,则会在任务到期日后增加一天。我以前从未使用过任务API,因此tehhowch的getExtension示例非常有用

function addOneDayToDueDates(){
  var seconds=1000;
  var minutes=60*seconds;
  var hours=60*minutes;
  var days=24*hours;//this is just my simple minded way of get the millisecond in a day
  var nowValue=new Date().valueOf();
  var taskLists=Tasks.Tasklists.list();
  if(taskLists.items){//loop through all lists
    for(var i=0;i<taskLists.items.length;i++){
      var taskList=taskLists.items[i];
      var tasks=Tasks.Tasks.list(taskList.id);
      if(tasks.items){
        for(var j=0;j<tasks.items.length;j++){//loop through all task in list
          Logger.log('i=%s,j=%s\n',i,j);
          var task=tasks.items[j];
          var dueValue=new Date(task.due).valueOf();
          if(dueValue<nowValue){//date comparison
            var newDue = new Date(new Date(task.due).valueOf() + 1*days);
            Logger.log('newDue=%s,Due=%s',newDue,task.due);
            var newTask = {due: Utilities.formatDate(newDue, "GMT", "yyyy-MM-dd'T'HH:mm:ss'Z'")};
            Tasks.Tasks.patch(newTask, taskList.id, task.id);
          }
        }
      }
    }
  }
}
函数addOneDayToDueDates(){ var秒=1000; var分钟=60*秒; var小时=60*min; var days=24*hours;//这只是我一天中获取毫秒的简单方法 var nowValue=新日期().valueOf(); var taskLists=Tasks.taskLists.list(); if(taskLists.items){//遍历所有列表
对于(var i=0;i“它不工作”不是一个问题陈述。你得到了什么错误?发生了什么行为?应该发生什么行为?你发现了什么具体的研究?还有其他人遇到过这个问题吗?在你运行以下行之后,你如何处理
任务
对象?我猜你正在成功地修改本地表示,但无法使用新资源更新服务器。请参阅,谢谢,我已修改了我的问题并尝试了您的建议。仍然不完全确定如何使用更新服务器所需的数据。您可以提供一个示例吗?谢谢您提供的示例。这非常有帮助!非常感谢!请注意,
.list()
方法不会在一次调用中返回所有项目,只返回第一页(除非您通过可选的
pageToken
参数请求不同的页面)@tehhowch谢谢你的评论。我自己不使用任务,所以我的示例总共只有两个任务。所以这会使代码变得复杂一些。@Cooper还不错-在
do{…}while(opts.pageToken)中调用
.list(opts)
循环,并将结果的
.items
聚合到您选择的对象中。然后将
opts.pageToken
设置为
.nextPageToken
@tehhowch我回到这里是为了尝试实现您的建议,但所有任务都继续通过循环的一条路径完成。我在3个不同的列表中创建了大约30个任务。也许我还需要更多…不知道。如果您有时间,我会很感激您的帮助。@Cooper最大页面大小通常为20-100个项目。如果您想测试循环,请将
maxResults
设置为1
 function listTasks() {
  var taskToken;
  var iteration=0;
  var opts={pageToken:taskToken,maxResults:100};
  do{
    iteration++;
    var myLists=Tasks.Tasklists.list(opts)
    if(myLists.items){
      for(var i=0;i<myLists.items.length;i++){
        var item=myLists.items[i];
        Logger.log(item.title + '\n' + item.id + '\n');
        var myTasks=Tasks.Tasks.list(item.id)
        if(myTasks.items){
          for(var j=0;j<myTasks.items.length;j++){
            Logger.log(myTasks.items[j].title + '\n');
          }
        }else{
          Logger.log('No tasks for ' + item.title + '\n');
        }
      }
    }
    Logger.log('Get Page Token ' + 'Iterations: ' + iteration);
    opts.pageToken=myLists.nextPageToken;
  }while(opts.pageToken);
  Logger.log('End of Function');
}