繁体   English   中英

从 Google 电子表格到 Telegram bot 的日期格式

[英]Date formatting from Google Spreadsheet to Telegram bot

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

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

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

如果我按原样使用它, poll 选项会以某种方式转换为值"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);
}

出于文档目的发布此内容。

正如Tanaike 所建议的,为了在从 Apps 脚本中的工作表单元格检索日期(或任何值)时保持显示的格式,请使用getDisplayValues()而不是getValues()

返回显示值的二维数组,按行索引,然后按列索引。 值是 String 对象。 显示的值考虑了日期、时间和货币格式,包括电子表格的区域设置自动应用的格式

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM