从 Google 电子表格到 Telegram 机器人的日期格式

我制作了一个通过 Webhook 与电子表格连接的机器人。


我有一个日期格式类似于 的单元格'dd MMMM',例如"03 september"。它是从等于 03.09.2020 00:00:00 GMT+3 的一定毫秒数获得的。我想使用这个精确值 ( "03 september") 作为投票选项。


你可以在下面看到我的代码。


如果我按原样使用它, poll option 会以某种方式转换为 value "2020-09-02T21:00:00.000"。如果我在将所有日期发送到 JSON 之前将所有日期映射到字符串,那么此选项看起来像"Thu Sep 03 2020 00:00:00 GMT+0300 ... ". 我怎样才能让它在电报中看起来简单?


UPD:我认为这Utilities.formatDate()是一个合适的解决方案,但我仍然不知道如何将月份名称格式化为俄语语言环境。


function doWork() {

  var availableDates = scheduleSheet.getRange(1, 1, 1, 5).getValues()[0];

  //var stringDates = availableDates.map(function(date) {return String(date)});

  sendPoll(chatId, availableDates);

}


function sendPoll(chatId, options) {

  var data = {

    method: "post",

    payload: {

      method: "sendPoll",

      chat_id: String(chatId),

      question: "Some question:",

      options: JSON.stringify(options),

      is_anonymous: false,

      allows_multiple_answers: true,

      reply_markup: JSON.stringify(REMOVE_KEYBOARD)

    }

  };

  UrlFetchApp.fetch('https://api.telegram.org/bot' + token + '/', data);

}


人到中年有点甜
浏览 107回答 1
1回答

千万里不及你

出于文档目的发布此内容。正如Tanaike建议的那样,为了在 Apps 脚本中从工作表单元格检索日期(或任何值)时保留显示格式,请使用getDisplayValues()而不是getValues():返回显示值的二维数组,按行索引,然后按列索引。这些值是 String 对象。显示的值考虑了日期、时间和货币格式,包括由电子表格的区域设置自动应用的格式。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript