Я наткнулся на этот скрипт проверки ранга. Я не уверен точно, где я его нашел, но он построен на Google Docs и скрипте, который автоматизирует процесс проверки рейтинга. Я немного разбираюсь в кодировании, но этого недостаточно, чтобы понять это. Я уверен, что кто-то здесь может понять это.
Сценарий выполняется ночью, запрашивает у Google мои ключевые слова, а затем заполняет пустые ячейки в электронной таблице Google. Формат даты, который появляется15.06.2014 06:08:21
Я бы хотел, чтобы это был формат даты, с которым я больше знаком, например mm/dd/yyyy
или что-то в этом роде.
Во всяком случае, я баловался со скриптом ( на каком языке это написано в? Питон?) , И я вижу , что устанавливает переменную с именем curDat
в new Date()
. Насколько я понимаю, Date()
вызывается функция, и ей не передаются никакие параметры - правильно? Проблема в Date()
функции или это просто простой случай, когда мне нужно отформатировать дату в таблицах Google?
Вот паста всего сценария - она короткая:
function myFunction() {
var sheet = SpreadsheetApp.getActiveSheet();
sheet.insertColumnBefore(5);
var column = sheet.getRange('B13:B');
var values = column.getValues();
var rankingdrop = sheet.getRange("c8").getValue();
var ct = 0;
var colors = [];
while ( values[ct][0] != "" ) {
var formu = sheet.getRange("d" + (ct+13)).getFormula();
sheet.getRange("d" + (ct+13)).setFormula(formu);
Utilities.sleep(3000);
var rank = sheet.getRange("d" + (ct+13)).getValue();
sheet.getRange("e" + (ct+13)).setValue(rank);
var oldrank = sheet.getRange("f" + (ct+13)).getValue();
var colorcell = sheet.getRange("e" + (ct+13));
if(rank > oldrank){
colorcell.setFontColor("#ff0000");
} else if (rank < oldrank){
colorcell.setFontColor("#088A08");
}
if (rank - oldrank >= rankingdrop) {
var mailalert = true;
}
ct++;
}
var sendmail = sheet.getRange("c7").getValue();
if (mailalert == true && sendmail == "yes") {
var emailAddress = sheet.getRange("c9").getValue();
var message = "Ranking alert. Please check your rankings";
var url = sheet.getRange("c4").getValue();
var subject = ("Ranking Alert for " + url);
MailApp.sendEmail(emailAddress, subject, message);
}
var curDat = new Date();
var startOTY = curDat.getFullYear();
var curValue = Date.parse(curDat);
var begDat = new Date(startOTY,0,1);
var begValue = Date.parse(begDat);
var weekNum = parseInt((curValue - begValue)/604800000)+1;
sheet.getRange("e12").setValue(curDat);
}
источник
Ответы:
Используйте следующий код, чтобы изменить обозначение даты.
Код
Ссылки
источник
Используйте
setNumberFormat
для установки формата даты (или числа) для конкретной ячейки. В этом примере текущая дата помещается в A1 текущего листа в формате MM / dd / yyyy:Причины использования
setNumberFormat
(а не такUtilities.formatDate
, как если бы часто советовали в интернете):Utilities.formatDate
не меняет формат ячейки; он преобразует свой контент в текст. Если вы собираетесь использовать значение даты в вычислениях, вы не хотите, чтобы оно преобразовывалось в текст.Utilities.formatDate
Требуется указать часовой пояс. Если вы введете что-то вроде «GMT + 1» и ваша страна будет использовать переход на летнее время, вы можете ожидать, что трудно обнаруживаемые ошибки появятся через несколько месяцев. ПриsetNumberFormat
этом значение даты остается совместимым со всеми другими значениями даты в электронной таблице в соответствии с настройкой часового пояса.источник
Session.getScriptTimeZone()
качестве параметра часового пояса.Session.getScriptTimeZone()
выводится длинный формат (например, Америка / Денвер), а не «GMT-7», поэтому вам нужно как-то его преобразовать.Со временем:
источник