Ich bin auf dieses Skript zur Rangprüfung gestoßen. Ich bin mir nicht sicher, wo ich es gefunden habe, aber es basiert auf Google Text & Tabellen und einem Skript, das den Rangprüfungsprozess automatisiert. Ich verstehe ein bisschen Codierung, aber nicht genug, um das wirklich herauszufinden. Ich bin sicher, jemand hier kann es herausfinden.
Das Skript wird jede Nacht ausgeführt, fragt Google nach meinen Keywords ab und füllt dann leere Zellen in einer Google-Tabelle. Das angezeigte Datumsformat ist15.06.2014 06:08:21
Ich möchte, dass es ein Datumsformat ist, mit dem ich besser vertraut bin, wie mm/dd/yyyy
oder so etwas.
Wie auch immer, ich habe mit dem Skript dabbled (welcher Sprache diese in? Python geschrieben?) Und ich sehe es eine Variable mit dem Namen legt curDat
zu new Date()
. Ist nach meinem Verständnis Date()
eine Funktion aufgerufen und werden keine Parameter an sie übergeben - richtig? Liegt das Problem in der Date()
Funktion oder ist dies nur ein einfacher Fall, in dem ich das Datum in Google Spreadsheets formatieren muss?
Hier ist eine Einfügung des gesamten Skripts - es ist kurz:
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);
}
quelle
Antworten:
Verwenden Sie den folgenden Code, um die Datumsnotation zu ändern.
Code
Verweise
quelle
Verwenden Sie
setNumberFormat
diese Option , um das Datums- (oder Zahlen-) Format für eine bestimmte Zelle festzulegen. In diesem Beispiel wird das heutige Datum in A1 des aktuellen Blattes eingefügt, formatiert als MM / TT / JJJJ:Gründe für die Verwendung
setNumberFormat
(und nichtUtilities.formatDate
, wie im Internet oft empfohlen):Utilities.formatDate
ändert das Zellenformat nicht; es konvertiert seinen Inhalt in Text. Wenn Sie den Datumswert in Berechnungen verwenden möchten, möchten Sie nicht, dass er in Text konvertiert wird.Utilities.formatDate
erfordert die Angabe einer Zeitzone. Wenn Sie so etwas wie "GMT + 1" eingeben und Ihr Land die Sommerzeit einhält, können Sie davon ausgehen, dass einige Monate später schwer zu verfolgende Fehler auftreten. MitsetNumberFormat
bleibt der Datumswert mit allen anderen Datumswerten in der Tabelle konsistent, abhängig von der Zeitzoneneinstellung.quelle
Session.getScriptTimeZone()
als Zeitzonenparameter verwenden.Session.getScriptTimeZone()
das Langformat (z. B. Amerika / Denver) anstelle von "GMT-7" ausgegeben wird, sodass Sie es irgendwie konvertieren müssen.Mit der Zeit:
quelle