簡體   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