Je suis tombé sur ce script de vérification de rang. Je ne sais pas exactement où je l'ai trouvé, mais il est construit sur Google Docs et un script qui automatise le processus de vérification du classement. Je comprends un peu le codage mais pas assez pour vraiment comprendre cela. Je suis certain que quelqu'un ici peut le comprendre.
Le script s'exécute tous les soirs, interroge Google pour mes mots clés, puis remplit les cellules vides dans une feuille de calcul Google. Le format de date qui apparaît est15.06.2014 06:08:21
J'aimerais que ce soit un format de date que je connaisse mieux, comme mm/dd/yyyy
ou quelque chose comme ça.
Quoi qu'il en soit, j'ai essayé le script (dans quelle langue est-ce écrit en? Python?) Et je vois qu'il définit une variable nommée curDat
à new Date()
. D'après ma compréhension, Date()
une fonction est-elle appelée et aucun paramètre ne lui est transmis - correct? Le problème est-il dans la Date()
fonction ou s'agit-il simplement d'un cas simple où je dois formater la date dans Google Spreadsheets?
Voici une pâte du script entier - il est court:
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);
}
la source
Réponses:
Utilisez le code suivant pour modifier la notation de la date.
Code
Références
la source
Utilisez
setNumberFormat
pour définir le format de date (ou de nombre) pour une cellule particulière. Cet exemple place la date du jour dans A1 de la feuille en cours, au format MM / jj / aaaa:Raisons d'utiliser
setNumberFormat
(et nonUtilities.formatDate
, comme si souvent conseillé sur Internet):Utilities.formatDate
ne change pas le format des cellules; il convertit son contenu en texte. Si vous comptez utiliser la valeur de date dans les calculs, vous ne voulez pas qu'elle soit convertie en texte.Utilities.formatDate
nécessite un pour spécifier un fuseau horaire. Si vous mettez quelque chose comme "GMT + 1" et que votre pays observe l'heure d'été, vous pouvez vous attendre à ce que des bogues difficiles à suivre surviennent quelques mois plus tard. AvecsetNumberFormat
, la valeur de date reste cohérente avec toutes les autres valeurs de date dans la feuille de calcul, régie par son paramètre de fuseau horaire.la source
Session.getScriptTimeZone()
comme paramètre de fuseau horaire.Session.getScriptTimeZone()
le format long (par exemple America / Denver) est émis plutôt que "GMT-7", vous devez donc le convertir d'une manière ou d'une autre.Avec le temps:
la source