![](/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.