javascript 连接后以“dd-MMM-yy”格式返回多个日期

pnwntuvh  于 2023-09-29  发布在  Java
关注(0)|答案(1)|浏览(87)

我想在Google表格的一个单元格中连接多个日期。我使用了一个自定义函数GetColoredCellValue(),它根据背景颜色返回单元格值(日期)。这个新的自定义函数ConcatIfDates()将从GetColoredCellValue()获取结果,并将它们连接到一个单元格中。
所以在google sheet中,我会像这样使用自定义函数:=ConcatIfDates(GetColoredValue(COLUMN(A2),ROW(A2),COLUMN(F2)))
结果应该是这样的:
27-Jun-22, 13-Oct-22, 27-Jun-22

function ConcatIfDates(input){
  if (input.length>1) {
    var newArr = input.map(row => {
      return row.map(date => {
        var date = new Date();
        return date = Utilities.formatDate(date, "GMT+1", "dd-MMM-yy");
      });
    });
    return newArr.join();
  } else {
      return input[0];
  }
}

我上面的脚本不断加入第一次约会重复这样:
27-Sep-23,27-Sep-23,27-Sep-23
我想在“dd-MMM-yy”格式的日期,所以我已经使用Utilities.formatDate否则,它给这个非常长的格式,如果我返回的日期,而不使用日期格式。
Mon Jun 27 2022 00:00:00 GMT+0630 (GMT+06:30),Thu Oct 13 2022 00:00:00 GMT+0630 (GMT+06:30),Mon Jun 27 2022 00:00:00 GMT+0630 (GMT+06:30)
我已经附上了一个例子表我给予你一个粗略的想法截图。
我只是谷歌的东西和实验没有正确学习JavaScript,所以我的脚本可能没有意义,我提前道歉!谢谢你花时间阅读这篇文章!

rdrgkggo

rdrgkggo1#

我不确定getColoredValue()返回什么,但可能是Dates()数组。那么这个怎么样:

function ConcatIfDates(input=["1/1/2023","2/1/2021","3/1/2023"]){
  if (input.length>1) {
    var newArr = input.map(x => Utilities.formatDate(new Date(x), "GMT+1", "dd-MMM-yy"));
    Logger.log(JSON.stringify(newArr));
    return newArr.join();//this returns ["01-Jan-23","01-Feb-21","01-Mar-23"]
  } else {
      return input[0];
  }
}

相关问题