Если мое понимание верно, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.
К сожалению, значения типа Thursday, 13 Feb at 4:57pm
не могут быть получены напрямую. Поэтому сначала извлекается время unix, и значение преобразуется в строку в формате.
Пример сценария:
Перед запуском сценария установите имя листа. И этот сценарий предполагает, что URL-адреса помещаются в столбец «B».
function myFunction() {
var sheetName = "Sheet1"; // Please set the sheet name.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(sheetName);
var urls = sheet.getRange(1, 2, sheet.getLastRow(), 1).getValues();
var requests = urls.map(([url]) => ({url: url}));
var res = UrlFetchApp.fetchAll(requests);
var timezone = ss.getSpreadsheetTimeZone();
var dateTimes = res.map(e => {
if (e.getResponseCode() == 200) {
var r = /<abbr class\="form-header__timestamp timestamp time12" data-utime\="(\d.+)"/.exec(e.getContentText())[1];
return [Utilities.formatDate(new Date(Number(r) * 1000), timezone, "EEEE, dd MMM 'at' hh:mm") + Utilities.formatDate(new Date(Number(r) * 1000), timezone, "a").toLowerCase()];
}
return [""];
});
sheet.getRange(1, 3, dateTimes.length, 1).setValues(dateTimes);
}
Результат:
При запуске сценария полученные значения даты помещаются в столбец "C "следующим образом.
Примечание:
- Если
fetchAll
не может использоваться в вашей ситуации, я думаю, что необходимо использовать fetch
в l oop.
Список литературы: