Datum- och tidsfunktioner

Variabler

nu

Hämtar aktuell tid i formatet YYYY-MM-DD-hhss.

tidsstämpel

Hämtar den aktuella tiden som en Unix-tidsstämpel.

Funktioner

addSeconds (date; number)

Returnerar ett nytt datum som ett resultat av att ett visst antal sekunder har lagts till ett datum. Om du vill subtrahera sekunder anger du ett negativt tal.

Exempel:

  • addSeconds(2016-12-08T15:55:57.536Z;2)

    Returnerar 2016-12-08T15:55:59.536Z

  • addSeconds(2016-12-08T15:55:57.536Z;-2)

    Returnerar 2016-12-08T15:55:55.536Z

addMinutes (date; number) addminutes-date-number

Returnerar ett nytt datum som ett resultat av att ett visst antal minuter har lagts till ett datum. Om du vill subtrahera minuter anger du ett negativt tal.

Exempel:

  • addMinutes(2016-12-08T15:55:57.536Z;2)

    Returnerar 2016-12-08T15:57:57.536Z

  • addMinutes(2016-12-08T15:55:57.536Z;-2)

    Returnerar 2016-12-08T15:53:57.536Z

addHours (date; number) addhours-date-number

Returnerar ett nytt datum som ett resultat av att ett visst antal timmar har lagts till ett datum. Om du vill subtrahera timmar anger du ett negativt tal.

Exempel:

  • addHours(2016-12-08T15:55:57.536Z; 2)

    Returnerar 2016-12-08T17:55:57.536Z

  • addHours(2016-12-08T15:55:57.536Z;-2)

    Returnerar 2016-12-08T13:55:57.536Z

addDays (date; number) adddays-date-number

Returnerar ett nytt datum som ett resultat av att ett visst antal dagar har lagts till ett datum. Om du vill subtrahera dagar anger du ett negativt tal.

Exempel:

  • addDays(2016-12-08T15:55:57.536Z;2)

    Returnerar 2016-12-10T15:55:57.536Z

  • addDays(2016-12-08T15:55:57.536Z;-2)

    Returnerar 2016-12-6T15:55:57.536Z

addWeekDays(date; number)

[Nytt!]{class="badge informative"}

Lägger till antalet veckodagar till datumet. Endast heltalsvärden läggs till (decimalvärden avrundas nedåt).

Exempel:

addWeekDays("2016-12-08T15:55:57.536Z"; 2)

Returnerar 2016-12-12T15:55:57.536Z
addWeekDays("2016-12-08T15:55:57.536Z"; -2)
Returnerar 2016-12-06T15:55:57.536Z

addMonths (date; number)

Returnerar ett nytt datum som ett resultat av att ett visst antal månader har lagts till ett datum. Om du vill subtrahera månader anger du ett negativt tal.

Exempel:

  • addMonths(2016-08-08T15:55:57.536Z;2)

    Returnerar 2016-10-08T15:55:57.536Z

  • addMonths(2016-08-08T15:55:57.536Z;-2)

    Returnerar 2016-06-08T15:55:57.536Z

addYears (date; number)

Returnerar ett nytt datum som ett resultat av att ett visst antal år har lagts till ett datum. Om du vill subtrahera år anger du ett negativt tal.

Exempel:

  • addYears(2016-08-08T15:55:57.536Z;2)

    Returnerar 2018-08-08T15:55:57.536Z

  • addYears(2016-12-08T15:55:57.536Z; -2)

    Returnerar 2014-08-08T15:55:57.536Z

dayOfMonth(date)

[Nytt!]{class="badge informative"}

Returnerar dagen i månaden för datumet som ett tal mellan 1 och 31.

Exempel:

  • dayOfMonth("2016-12-28T16:03:06.372Z")

    Returer 28

  • dayOfMonth("2015-01-05T11:36:39.138Z")

    Returnerar 5

dayOfWeek(date)

[Nytt!]{class="badge informative"}

Returnerar veckodagen för datumet som ett tal mellan 1 (söndag) och 7 (lördag).

Exempel:

  • dayOfWeek("2016-12-28T16:03:06.372Z")

    Returnerar 4

  • dayOfWeek("2016-12-25T16:03:06.372Z")

    Returnerar 1

daysInMonth(date)

[Nytt!]{class="badge informative"}

Returnerar det totala antalet dagar i månaden för det angivna datumet.

Exempel:

  • daysInMonth("2016-01-01T00:00:00.000Z")

    Returer 31

  • daysInMonth("2016-02-01T00:00:00.000Z")

    Returer 29

daysInSplitWeek(date)

[Nytt!]{class="badge informative"}

Returnerar det totala antalet veckodagar mellan datumet och slutet av veckan, eller slutet av månaden, beroende på vilket som inträffar först.

Exempel:

  • daysInSplitWeek("2016-12-28T16:03:06.372Z")

    Returnerar 3

  • daysInSplitWeek("2016-01-25T16:03:06.372Z")

    Returnerar 5

daysInYear(date)

[Nytt!]{class="badge informative"}

Returnerar det totala antalet dagar under året för det angivna datumet (365 för ett regelbundet år, 366 för ett skottår).

Exempel:

  • daysInYear("2016-06-01T00:00:00.000Z")

    Returer 366

  • daysInYear("2015-06-01T00:00:00.000Z")

    Returer 365

dateMax(date1; date2; …)

[Nytt!]{class="badge informative"}

Returnerar det senaste (senaste) datumet från listan.

Exempel:

  • dateMax("2016-06-01T00:00:00.000Z"; "2016-12-01T00:00:00.000Z")

    Returnerar 2016-12-01T00:00:00.000Z

  • dateMax("2015-01-01T00:00:00.000Z"; "2016-06-15T00:00:00.000Z"; "2014-03-20T00:00:00.000Z")

    Returnerar 2016-06-15T00:00:00.000Z

dateMin(date1; date2; …)

[Nytt!]{class="badge informative"}

Returnerar det tidigaste datumet från listan.

Exempel:

  • dateMin("2016-06-01T00:00:00.000Z"; "2016-12-01T00:00:00.000Z")

    Returnerar 2016-06-01T00:00:00.000Z

  • dateMin("2015-01-01T00:00:00.000Z"; "2016-06-15T00:00:00.000Z"; "2014-03-20T00:00:00.000Z")

    Returnerar 2014-03-20T00:00:00.000Z

endOfMonth(date)

[Nytt!]{class="badge informative"}

Returnerar det sista momentet i månaden för det angivna datumet - den sista millisekunddelen av den sista dagen (23:59:59.999). Räknar automatiskt med antalet dagar i månaden, inklusive skottår.

Exempel:

  • endOfMonth("2016-06-15T12:30:00.000Z")

    Returnerar 2016-06-30T23:59:59.999Z

  • endOfMonth("2016-01-01T00:00:00.000Z")

    Returnerar 2016-01-31T23:59:59.999Z

  • endOfMonth("2016-02-01T00:00:00.000Z")

    Returnerar 2016-02-29T23:59:59.999Z

hour(date)

[Nytt!]{class="badge informative"}

Returnerar timmen för datumet som ett tal mellan 0 och 23.

Exempel:

  • hour("2016-12-08T15:55:57.536Z")

    Returer 15

  • hour("2016-12-08T00:00:00.000Z")

    Returnerar 0

isWeekend(date)

[Nytt!]{class="badge informative"}

Returnerar true om datumet infaller på en lördag eller söndag och false för en annan dag. Resultatet avgörs i scenariots konfigurerade tidszon.

Exempel:

  • isWeekend("2016-12-10T00:00:00.000Z")

    Returnerar true (lördag)

  • isWeekend("2016-12-11T00:00:00.000Z")

    Returnerar true (söndag)

  • isWeekend("2016-12-12T00:00:00.000Z")

    Returnerar false (måndag)

  • isWeekend("2016-12-09T00:00:00.000Z")

    Returnerar false (fredag)

minute(date)

[Nytt!]{class="badge informative"}

Returnerar minuten för datumet som ett tal mellan 0 och 59.

Exempel:

  • minute("2016-12-08T15:55:57.536Z")

    Returer 55

  • minute("2016-12-08T15:00:00.000Z")

    Returnerar 0

month(date)

[Nytt!]{class="badge informative"}

Returnerar månaden för datumet som ett tal mellan 1 och 12.

Exempel:

  • month("2016-12-08T15:55:57.536Z")

    Returnerar 12

  • month("2016-01-08T15:55:57.536Z")

    Returnerar 1

second(date)

[Nytt!]{class="badge informative"}

Returnerar datumets sekund som ett tal mellan 0 och 59.

Exempel:

  • second("2016-12-08T15:55:57.536Z")

    Returer 57

  • second("2016-12-08T15:55:00.000Z")

    Returnerar 0

startOfMonth(date)

[Nytt!]{class="badge informative"}

Returnerar det första momentet i månaden för det angivna datumet - midnatt den första dagen (00:00:000). Resultatet är tidszonsmedveten.

Exempel:

  • startOfMonth("2016-06-15T12:30:00.000Z")

    Returnerar 2016-06-01T00:00:00.000Z

  • startOfMonth("2024-02-14T08:00:00.000Z")

    Returnerar 2024-02-01T00:00:00.000Z

weekDayDiff(date2; date1)

[Nytt!]{class="badge informative"}

Returnerar antalet veckodagar mellan två datum, vilket motsvarar tidsstämplarna för dessa dagar. Om starttiden till exempel är 3 PM räknas inte startdagen som en hel dag.

Exempel:

  • weekDayDiff("2016-12-07T12:00:00.000Z"; "2016-12-05T00:00:00.000Z")

    Returnerar 2,5

  • weekDayDiff("2016-12-09T15:00:00.000Z"; "2016-12-05T15:00:00.000Z")

    Returnerar 4

workMinutesDiff(date1; date2)

[Nytt!]{class="badge informative"}

Returnerar antalet schemalagda arbetstimmar mellan två datum, baserat på ett standardschema som är måndag-fredag, 09:00-17:00.

Exempel:

  • workMinutesDiff("2016-12-05T09:00:00.000Z"; "2016-12-05T17:00:00.000Z")

    Returer 480

  • workMinutesDiff("2016-12-05T09:00:00.000Z"; "2016-12-06T17:00:00.000Z")

    Returer 960

year(date)

[Nytt!]{class="badge informative"}

Returnerar datumåret som ett fyrsiffrigt tal.

Exempel:

  • year("2016-12-08T15:55:57.536Z")

    Returer 2016

  • year("2000-01-01T00:00:00.000Z")

    Returnerar 2000

setSecond (date; number)

Den här funktionen returnerar ett nytt datum med de sekunder som anges i parametrar.

Ange ett tal mellan 0 och 59. Om talet ligger utanför det intervallet returnerar funktionen en sekund från föregående minut (för ett negativt tal) eller efterföljande minut (för ett positivt tal).

Om du behöver ange ett tal utanför intervallet rekommenderar vi att du använder ​ addSeconds enligt beskrivningen ovan i avsnittet addSeconds (date; tal).

Exempel:

  • setSecond(2015-10-07T11:36:39.138Z;10)

    Returnerar 2015-10-07T11:36:10.138Z

  • setSecond(2015-10-07T11:36:39.138Z; 61)

    Returnerar 2015-10-07T11:37:01.138Z

setMinute (date; number)

Den här funktionen returnerar ett nytt datum med de minuter som anges i parametrarna.

Ange ett tal mellan 0 och 59. Om talet ligger utanför det intervallet returnerar funktionen en minut från föregående timme (för ett negativt tal) eller efterföljande timme (för ett positivt tal).

Om du behöver ange ett tal utanför intervallet rekommenderar vi att du använder addMinutes enligt beskrivningen ovan i addMinutes (date; tal).

Exempel:

  • setMinute(2015-10-07T11:36:39.138Z;10)

    Returnerar 2015-10-07T11:10:39.138Z

  • setMinute(2015-10-07T11:36:39.138Z;61)

    Returnerar 2015-10-07T12:01:39.138Z

setHour (date; number)

Den här funktionen returnerar ett nytt datum med timmen angiven i parametrar.

Ange ett tal mellan 0 och 23. Om talet ligger utanför det här intervallet returnerar funktionen en timme från föregående dag (för ett negativt tal) eller efterföljande dag (för ett positivt tal).

Om du behöver ange ett tal utanför intervallet rekommenderar vi att du använder addHours enligt beskrivningen ovan i addHours (date; tal).

Exempel:

  • setHour(2015-08-07T11:36:39.138Z;6)

    Returnerar 2015-08-07T06:36:39.138Z

  • setHour(2015-08-07T11:36:39.138;-6)

    Returnerar 2015-08-06T18:36:39.138Z

setDay (date; number/name of the day in English)

Den här funktionen returnerar ett nytt datum med den dag som anges i parametrar.

Du kan använda den här funktionen för att ange veckodag, med söndag som 1 och lördag som 7. Om du anger ett tal mellan 1 och 7 blir det resulterande datumet inom den aktuella veckan (söndag till lördag). Om talet ligger utanför det intervallet returnerar funktionen en dag från föregående vecka (för ett negativt tal) eller efterföljande vecka (för ett positivt tal).

Om du behöver ange ett tal utanför intervallet rekommenderar vi att du använder addDays enligt beskrivningen ovan i addDays (date; tal).

Exempel:

  • setDay(2018-06-27T11:36:39.138Z;Monday)

    Returnerar 2018-06-25T11:36:39.138Z

  • setDay(2018-06-27T11:36:39.138Z;1)

    Returnerar 2018-06-24T11:36:39.138Z

  • setDay(2018-06-27T11:36:39.138Z;7)

    Returnerar 2018-06-30T11:36:39.138Z

setDate (date; number)

Den här funktionen returnerar ett nytt datum med den dag i månaden som anges i parametrar.

Ange ett tal mellan 1 och 31. Om talet ligger utanför det här intervallet returnerar funktionen en dag från föregående månad (för ett negativt tal) eller efterföljande månad (för ett positivt tal).

Exempel:

  • setDate(2015-08-07T11:36:39.138Z;5)

    Returnerar 2015-08-05T11:36:39.138Z

  • setDate(2015-08-07T11:36:39.138Z;32)

    Returnerar 2015-09-01T11:36:39.138Z

setMonth (date; number/name of the month in English)

Den här funktionen returnerar ett nytt datum med den månad som anges i parametrar.

Ange ett tal mellan 1 och 12. Om talet ligger utanför det här intervallet returnerar funktionen månaden under föregående år (för ett negativt tal) eller efterföljande år (för ett positivt tal).

Exempel:

  • setMonth(2015-08-07T11:36:39.138Z;5)

    Returnerar 2015-05-07T11:36:39.138Z

  • setMonth(2015-08-07T11:36:39.138Z;17)

    Returnerar 2016-05-07T11:36:39.138Z

  • setMonth(2015-08-07T11:36:39.138Z;january)

    Returnerar 2015-01-07T12:36:39.138Z

setYear (date; number)

Returnerar ett nytt datum med året angivet i parametrar.

Exempel:

  • setYear(2015-08-07T11:36:39.138Z;2017)

    Returnerar 2017-08-07T11:36:39.138Z

formatDate (date; format; [timezone])

Använd den här funktionen när du har ett datumvärde, till exempel 12-10-2021 20:30, som du vill formatera som ett textvärde, till exempel Dec 10, 2021 8:30 PM.

Detta är praktiskt när du till exempel behöver ändra datumformatet för en app eller webbtjänst till datumformatet för en ansluten app eller webbtjänst i samma scenario.

Mer information finns i Datum och text i artikeln Objektdatatyper.

Parametrar

Parameter
Förväntad datatyp*
Vad det gör
date
Datum
Konverterar ett datumvärde till ett textvärde.
format
Text

Här kan du ange ett format med hjälp av tokens för datum- och tidsformatering. Mer information finns i Token för datum- och tidsformatering.

Exempel: DD.MM.YYYY HH:mm

timezone
Text

(Valfritt) Du kan ange vilken tidszon som ska användas för konverteringen.

En lista över godkända tidszoner finns i kolumnen "TZ-databasnamn" i Wikipedia List of tz database time zone. Endast värdena i den här kolumnen tolkas som en giltig tidszon av funktionen. Alla andra värden ignoreras och scenernas tidszon som anges i din profil används i stället.

Om du utelämnar den här parametern används den tidszon för scenarier som anges i profilinställningarna.

Exempel: Europe/Prague, UTC

Om en annan typ anges används typtvång. Mer information finns i Typtvång.

Returvärde och typ

Funktionen formatDate returnerar en textrepresentation av det angivna Date-värdet enligt det angivna formatet och tidszonen. Datatypen är Text.

Exempel: Scenario och Web timezone var båda inställda på Europe/Prague i dessa exempel.

Exempel på funktion för datum/tid

  • formatDate(1. Date created;MM/DD/YYYY)

    Returer 2018-10-01

  • formatDate(1. Date created; YYYY-MM-DD hh:mm A)

    Returnerar 2018-10-01 09:32 AM

  • formatDate(1. Date created;DD.MM.YYYY HH:mm;UTC)

    Returnerar 01.10.2018 07:32

  • formatDate(now;DD.MM.YYYY HH:mm)

    Returnerar 19.03.2019 15:30

parseDate (text; format; [timezone])

Använd den här funktionen när du har ett textvärde som representerar ett datum (till exempel 12-10-2019 20:30 eller Aug 18, 2019 10:00 AM) och du vill konvertera (parsa) det till ett datumvärde (en binär maskinläsbar representation). Mer information finns i Datum och text i artikeln Objektdatatyper.

Parametrar

Den andra kolumnen anger den förväntade typen. Om en annan typ anges används typtvång. Mer information finns i Typtvång.

Parameter
Förväntad datatyp*
Vad det gör
text
Text
Konverterar ett datumvärde till ett textvärde.
format
Text

Här kan du ange ett format med hjälp av tokens för datum- och tidsformatering. Mer information finns i Token för datum- och tidsformatering.

Exempel: DD.MM.YYYY HH:mm

timezone
Text

(Valfritt) Du kan ange vilken tidszon som ska användas för konverteringen.

En lista över godkända tidszoner finns i kolumnen "TZ-databasnamn" i Wikipedia List of tz database time zone. Endast värdena i den här kolumnen tolkas som en giltig tidszon av funktionen. Alla andra värden ignoreras och scenernas tidszon som anges i din profil används i stället.

Om du utelämnar den här parametern används den tidszon för scenarier som anges i profilinställningarna.

Exempel: Europe/Prague, UTC

Om en annan typ anges används typtvång. Mer information finns i Typtvång.

Returvärde och typ

Den här funktionen konverterar en textsträng till ett datum enligt det format och den tidszon som du anger. Datatypen för värdet är Date.

Exempel: I följande exempel uttrycks det returnerade Date-värdet enligt ISO 8601, men datatypen för resultatet är Date.

  • parseDate(2016-12-28;YYYY-MM-DD)

    Returnerar 2016-12-28T00:00:00.000Z

  • parseDate(2016-12-28 16:03;YYYY-MM-DD HH:mm)

    Returnerar 2016-12-28T16:03:00.000Z

  • parseDate(2016-12-28 04:03 pm; YYYY-MM-DD hh:mm a)

    Returnerar 2016-12-28T16:03:06.000Z

  • parseDate(1482940986;X)

    Returnerar 2016-12-28T16:03:06.000Z

dateDifference (Date1; Date2; Unit)

Returnerar ett tal som representerar skillnaden mellan de två datumen, uttryckt i den angivna enheten.

Datum2 subtraheras från datum1.

Använd ett av följande tidsvärden för parametern unit:

  • millisekunder
  • sekunder
  • minuter
  • timmar
  • dagar
  • veckor
  • månader

Om ingen enhet anges returnerar funktionen differensen i millisekunder.

Exempel:

  • dateDifference(2021-05-11T18:10:00.000Z;2021-05-11T18:00:00.000Z)

    Returnerar 600,000

  • dateDifference(2021-05-11T18:10:00.000Z;2021-05-11T18:00:00.000Z;hours)

    Returnerar 4

  • dateDifference2021-06-11T18:10:00.000Z;2021-05-11T18:00:00.000Z;months)

    Returnerar 1

Ytterligare exempel

Så här beräknar du den n:e veckodagen i månaden

Det här avsnittet är anpassat för Workfront Fusion från webbsidan Exceljet som förklarar hur du hämtar den nionde veckodagen i en månad.

Om du behöver beräkna ett datum som motsvarar den n:e veckodagen i månaden (till exempel den första tisdagen, den tredje fredagen och så vidare) kan du använda följande formel:

Beräkna dag ​

{{addDays(setDate(1.date; 1); 1.n * 7 - formatDate(addDays(setDate(1.date; 1); "-" + 1.dow); "E"))}}

Formeln innehåller följande artiklar:

1.n

N:e dagen:

  • 1 för 1 tisdag
  • 2 för andra tisdagen
  • 3 för 3 tisdag och så vidare
2.dow

veckodag:

  • 1 för måndag
  • 2 för tisdag
  • 3 för onsdag
  • 4 för torsdag
  • 5 i fredag
  • 6 för lördag
  • 7 för söndag
1.date
Datumet bestämmer månaden. Om du vill beräkna den n:e veckodagen i den aktuella månaden använder du variabeln now.

Om du bara vill beräkna ett specifikt fall, till exempel varje onsdag, kan du ersätta objekten 1.n och 2.dow i formeln med motsvarande tal. För den andra onsdagen i den aktuella månaden använder du följande värden:

  • 1.n = 2
  • 1.dow = 3
  • 1.date = now

Variabelvärde för dag ​

Förklaring:

  • setDate(now;1) returnerar den första av den aktuella månaden
  • formatDate(....;E) returnerar veckodag (1, 2, … 6)

Beräkna dagar mellan datum

En möjlighet är att använda följande uttryck:

Beräkna dagar mellan datum

{{round((2.value - 1.value) / 1000 / 60 / 60 / 24)}}
NOTE
  • Värdena för D1 och D2 har datatypsvärden. Om de är strängtypsvärden (till exempel 20.10.2018) använder du funktionen parseDate() för att konvertera dem till datatypsvärden.

  • Funktionen round() används för fall när ett av datumen ligger inom sommartidsperioden och det andra inte gör det. I dessa fall är skillnaden i timmar en timme mindre eller mer. Du kan dividera det med 24 för ett resultat som inte är ett heltal. Du förlorar en timmes sommartid. Rund förenklar den så att du inte får en procentandel

Så här beräknar du sista dagen/millisekunden i månaden

När du anger ett datumintervall, till exempel i en sökmodul, måste du beräkna den sista dagen i månaden om intervallet sträcker sig över hela föregående månad som ett slutet intervall (det intervall som innehåller båda gränspunkterna).

2019-09-01 ≤ D ≤ 2019-09-30

Formeln nedan visar ett sätt att beräkna den sista dagen i föregående månad:

Sista dagen i föregående månad

{{addDays(setDate(now; 1); -1)}}

I vissa fall behöver du inte bara beräkna den sista dagen i månaden, utan bokstavligen dess sista millisekund:

2019-09-01T00:00:00.000Z ≤ D ≤ 2019-09-30T23:59:59.999Z

Den här formeln visar ett sätt att beräkna den sista millisekunddelen i föregående månad:

Senaste millisekunden i föregående månad

{{parseDate(parseDate(formatDate(now; "YYYYMM01"); "YYYYMMDD"; "UTC") - 1; "x")}}

Om du behöver resultatet för att använda tidszonsinställningen utelämnar du UTC-argumentet:

Uteslut UTC

{{parseDate(parseDate(formatDate(now; "YYYYMM01"); "YYYYMMDD") - 1; "x")}}

Det är dock bättre att använda ett halvöppet intervall i stället (det intervall som utesluter en av sina gränspunkter), ange den första dagen i nästa månad i stället och ersätta operatorn “mindre än eller lika med” med “mindre än” enligt följande:

2019-09-01 ≤ D < 2019-10-01

2019-09-01T00:00:00.000Z ≤ D < 2019-10-01T00:00:00.000Z

recommendation-more-help
workfront-fusion-help-workfront-fusion