![](/img/trans.png)
[英]Send a scheduled message in my telegram bot linked to a google spreadsheet
[英]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.