Eu me deparei com esse script de verificação de classificação. Não sei exatamente onde o encontrei, mas ele é construído no Google Docs e em um script que automatiza o processo de verificação de classificação. Eu entendo um pouco de codificação, mas não o suficiente para realmente descobrir isso. Estou certo de que alguém aqui pode descobrir isso.
O script é executado todas as noites, consulta minhas palavras-chave no Google e preenche células em branco em uma planilha do Google. O formato da data que aparece é15.06.2014 06:08:21
Eu gostaria que fosse um formato de data que eu esteja mais familiarizado, como mm/dd/yyyy
algo assim.
De qualquer forma, eu tenho dividido com o script (que língua é esta escrito? Python?) E eu vejo isso define uma variável chamada curDat
para new Date()
. Pelo que entendi, Date()
uma função está sendo chamada e nenhum parâmetro está sendo passado para ela - correto? O problema está na Date()
função ou é apenas um caso simples de eu precisar formatar a data nas planilhas do Google?
Aqui está uma pasta de todo o script - é curto:
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);
}
fonte
Respostas:
Use o código a seguir para alterar a notação da data.
Código
Referências
fonte
Use
setNumberFormat
para definir o formato da data (ou número) para uma célula específica. Este exemplo coloca a data de hoje em A1 da planilha atual, formatada como MM / dd / aaaa:Razões para usar
setNumberFormat
(e nãoUtilities.formatDate
, como se frequentemente recomendado na Internet):Utilities.formatDate
não altera o formato da célula; ele converte seu conteúdo em texto. Se você usar o valor da data nos cálculos, não deseja que ele seja convertido em texto.Utilities.formatDate
requer um para especificar um fuso horário. Se você colocar algo como "GMT + 1" e seu país observar o horário de verão, poderá esperar que erros difíceis de rastrear apareçam alguns meses depois. ComsetNumberFormat
, o valor da data permanece consistente com todos os outros valores da data na planilha, regidos por sua configuração de fuso horário.fonte
Session.getScriptTimeZone()
como parâmetro de fuso horário.Session.getScriptTimeZone()
produz o formato longo (por exemplo, América / Denver) em vez de "GMT-7", então você precisa convertê-lo de alguma forma.Com tempo:
fonte