Javascript/GAS-如何在POST请求中循环日期



我想通过API将下个月的一些时间表条目发布到系统中。这里我需要

  1. user_id
  2. assignable_id
  3. 日期(yyyy - mm - dd)<
  4. 小时/gh>

首先我下载了user_id和assignable_id并将它们存储在数组中,现在我试图使用它们向系统发送POST请求。

我的挑战是,每当POST请求时,我在将日期放入数组并循环数组中的每一天时遇到麻烦。关于我如何在POST循环中实现这一点的任何指针?

下面是POST请求的代码:

function demo_Code()
{
var user_dt = user_assignments()
for (var i = 0; i < user_dt.length; i++)
{
var data = {
'hours': 0,
//      'date': lastRow[0][2],   // This is where I need to change and have next one month datesin an array instead of reading through the sheet
'user_id': user_dt[i].user_id,
'assignable_id': user_dt[i].assignable_id,
};
var payload = JSON.stringify(data);
var options = {
'method': 'POST',
'Content-Type': 'application/json',
'payload': data,
};
var url = 'https://api.10000ft.com/api/v1/users/' + data.user_id + '/time_entries?auth=' + token
var response = UrlFetchApp.fetch(url, options);
}
}

根据您在问题和评论中所描述的内容,您的目的是生成一个包含两天之间所有天数的日期数组。

要实现这一点,您可以使用下面具有自解释注释的简单代码。它通过保持日期计数来迭代两个日期之间的所有天数;在将每一天添加到数组中后,将每一天增加1。这是通过getDate()和setDate()函数实现的。

如果你想使用这个数组,那么在你的POSTfor循环中,你可以简单地通过索引dateArray[2]访问每个日期元素,例如,这个索引也可以是你的迭代变量i(dateArray[i])。

// Array of dates
var dateArray = [];
// Starting date
var date1= new Date(2021,1,1);
// Ending date for the range of dates
var date2 = new Date(2021,1,31);
// Set the current date to the starting date 
var date = new Date(date1); 
// Iterate over all the dates from the starting
// to the end date
while(date<=date2){
// push the current date
dateArray.push(date);
// move the current date to be one day later
date.setDate(date.getDate()+1);
}
// log your date array
Logger.log(dateArray);

最新更新