2016-10-30 8 views
0

Ich bin ein wirklich neuer Programmierer. Ich versuche etwas zu schreiben, das automatisch das Datum auf meine Blätter legt. Wenn die Zeit nach Mitternacht ist und immer noch nicht 6 Uhr, möchte ich das Datum des Vortages. Ist das möglich?Datum ändern, wenn die Stunde nach Mitternacht

Dies ist, was ich bisher habe; Ich bin fest:

var CueectHoure = Utilities.formatDate(new Date(), "Asia/Jerusalem", "HH"); 
var CurrectDay = Utilities.formatDate(new Date(), "Asia/Jerusalem", "dd"); 
var CurrectMunth = Utilities.formatDate(new Date(), "Asia/Jerusalem", "MM"); 
var FullDay = CurrectDay + "." + CurrectMunth; 
var fulldayless = CurrectDay -1 + "." + CurrectMunth; 
var dayplus = CurrectDay - 31; 
Browser.msgBox(dayplus); 

// check if the hour is above 00 and under 6 
if (CueectHoure > 00 & CueectHoure <= 6){ 

    //what happens if date is 1.11? we need return to 31.10   
    if (CurrectDay == 1){ 
     CurrectDay = CurrectDay -1; // stuck here 
    } else { 

    } 
    SpreadsheetApp.getActiveSheet().getRange('n1').setValue(FullDay); 
    Browser.msgBox(FullDay); 
} 

Antwort

1

Kurze Antwort

statt subtrahieren 1, subtrahiert 86400000 und verwenden Sie das Ergebnis ein neues Date-Objekt zu erhalten.

Erklärung

Google Tabellen und Google Apps Script verwenden unterschiedliche Einheiten für Datums- und Uhrzeitwerten. Während ein Tag die Einheit in Google Tabellen ist, ist Google Apps Script eine Millisekunde.

-Code

function myFunction() { 
    var oneDay = 24*60*60*1000; 
    var today = new Date(); 
    var yesterday = new Date(today - oneDay); 
    Logger.log('Today: %s', today.toLocaleDateString()); 
    Logger.log('Yesterday: %s', yesterday.toLocaleDateString()); 
} 

Logs

[16-10-30 19:05:08:315 CST] Today: October 30, 2016 
[16-10-30 19:05:08:315 CST] Yesterday: October 29, 2016 
Verwandte Themen