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.536ZaddWeekDays("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
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
(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.
-
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.
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
(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:
{{addDays(setDate(1.date; 1); 1.n * 7 - formatDate(addDays(setDate(1.date; 1); "-" + 1.dow); "E"))}}
Formeln innehåller följande artiklar:
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=21.dow=31.date=now
Förklaring:
setDate(now;1)returnerar den första av den aktuella månadenformatDate(....;E)returnerar veckodag (1, 2, … 6)
Beräkna dagar mellan datum
En möjlighet är att använda följande uttryck:
{{round((2.value - 1.value) / 1000 / 60 / 60 / 24)}}
-
Värdena för
D1ochD2har datatypsvärden. Om de är strängtypsvärden (till exempel 20.10.2018) använder du funktionenparseDate()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:
{{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:
{{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:
{{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