Google Apps Script:
Jämföra två datum

Hur man gör:

I Google Apps Script jämförs datum med hjälp av JavaScript Date-objekt, vilket möjliggör användning av standardmetoder för att utvärdera vilket av två datum som är tidigare, senare, eller om de är samma. Här är ett grundläggande tillvägagångssätt:

function compareDates() {
  var date1 = new Date('2023-04-01T00:00:00');
  var date2 = new Date('2023-04-15T00:00:00');

  // Jämför datum
  if (date1 < date2) {
    Logger.log('Date1 är före Date2');
  } else if (date1 > date2) {
    Logger.log('Date1 är efter Date2');
  } else {
    Logger.log('Båda datumen är samma');
  }
}

// Exempelutdata:
// Date1 är före Date2

För mer detaljerade jämförelser (som antalet dagar mellan två datum) kan man subtrahera ett datum från ett annat, vilket returnerar skillnaden i millisekunder:

function daysBetweenDates() {
  var date1 = new Date('2023-04-01');
  var date2 = new Date('2023-04-15');
  
  var skillnad = date2 - date1;
  
  var dagar = skillnad / (1000 * 60 * 60 * 24); // Omvandla millisekunder till dagar
  Logger.log(dagar + ' dagar mellan datum');
}

// Exempelutdata:
// 14 dagar mellan datum

Fördjupning

Google Apps Script utnyttjar de grundläggande principerna för JavaScript Date-objekt för datumjämförelse, vilket har varit en grundläggande aspekt av språket sedan dess början. Användningen av millisekunder som ett jämförelsevärde sedan Unix Epoch (1 januari 1970) ger en hög nivå av precision för att bestämma skillnader eller likheter mellan datum.

Även om detta tillvägagångssätt är effektivt för de flesta användningsfall inom ramen för Google Apps Script, är det värt att notera att operationer på datum - som tidszonskorrigeringar och skottårsberäkningar - ibland kan leda till förvirring. Utvecklare från andra programmeringsbakgrunder (som Python, där datetime och dateutil moduler ger en mer nyanserad hantering av datum) kan finna JavaScript Date-objektet vara bristfälligt i funktioner.

För komplex datumhantering och manipulationer utöver enkla jämförelser, erbjuder bibliotek som Moment.js (som fortfarande kan användas inom Google Apps Script genom externa API:er) en rik uppsättning av funktionaliteter som adresserar dessa brister. Dock fortsätter det inhemska JavaScript Date-objektet att fungera som ett pålitligt verktyg för de flesta datumjämförelseuppgifter, särskilt i sammanhanget av Google Apps Script och dess integration med Googles svit av applikationer.