# today - skript- och diagramfunktion

Denna funktion returnerar aktuell tid. Denna funktion returnerar värdet i `DateFormat`-systemvariabelformat.

Syntax:

today([ timer\_mode])

Returnerad datatyp: dual

`today()`-funktionen kan användas antingen i laddningsskriptet eller i diagramobjekt.

Som standard är `timer_mode`-värdet 1.

Argument

| Argument | Beskrivning |
| --- | --- |
| timer\_mode | Kan ha följande värden:<br><br>0 (dagen för senast avslutade dataladdning)<br>1 (dagen för funktionsanrop)<br>2 (dagen då appen öppnades)<br><br>Anteckning om informationOm du använder funktionen i ett laddningsskript, resulterar timer\_mode=0 i dagen för senast slutförda dataladdning, medan timer\_mode=1 visar dagen för den aktuella dataladdningen. |

Exempel på funktioner

| Värde för timer\_mode | Resultat om det används i laddningsskript | Resultat om det används i diagramobjekt |
| --- | --- | --- |
| 0 | Returnerar ett datum, i formatet för systemvariabeln `DateFormat`, för den sista slutförda dataladdningen före den senaste dataladdningen | Returnerar ett datum, i formatet för systemvariabeln `DateFormat`, för den senaste dataladdningen. |
| 1 | Returnerar ett datum, i formatet för systemvariabeln `DateFormat`, för den senaste dataladdningen. | Returnerar ett datum, i formatet för systemvariabeln `DateFormat`, för funktionsanropet. |
| 2 | Returnerar ett datum, i formatet för systemvariabeln `DateFormat`, för när användarens session i programmet började. Detta uppdateras inte, såvida inte användaren laddar skriptet. | Returnerar datumet, i formatet för systemvariabeln `DateFormat`, för när användarens session i programmet började. Detta kommer att uppdateras när en ny session börjar eller data i applikationen laddas igen. |

## Användning

`today()`-funktionen används vanligen som en komponenten inom ett uttryck. Den kan exempelvis användas för att beräkna den ränta som har ackumulerats under en månad fram till dagens datum.

I följande tabell finns en förklaring av resultatet som returneras av `today()`-funktionen, förutsatt att värdena för `timer_mode`-argumenten är olika:

## Lokala inställningar

Om inget annat anges använder exemplen i detta ämne följande datumformat: MM/DD/ÅÅÅÅ. Datumformatet anges i `SET DateFormat`-satsen i datainläsningsskriptet. Förvald datumformatering kan vara annorlunda i ditt system, på grund av dina regionala inställningar och andra faktorer. Du kan ändra formaten i exemplen nedan så att det passar dina krav. Eller så kan du ändra formaten i ditt laddningsskript så att de matchar dessa exempel.

Standardregionalinställningar i appar baseras på de regionala systeminställningarna för datorn eller servern där Qlik Sense är installerad. Om Qlik Sense-servern du ansluter till är inställd på Sverige så kommer skriptredigeraren använda regionala inställningar för Sverige för datum, tid och valuta. Dessa regionala formatinställningar är inte relaterade till språket som visas i Qlik Sense användargränssnittet. Qlik Sense kommer att visas på samma språk som webbläsaren du använder.

## Exempel 1 – generering av objekt med laddningsskript

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/today.htm)

#### Laddningsskript och resultat

Översikt

I det följande exemplet skapas tre variabler med `today()`-funktionen. För varje variabel används ett av `timer_mode`-alternativen för att visa hur det fungerar.

För att variablernas funktionalitet ska framgå laddar du skriptet en gång, och därefter efter 24 timmar ytterligare en gång. Resultatet blir att `today(0)`- och `today(1)`-variablernas funktionalitet framgår genom att de visar olika värden.

Laddningsskript

```
LET vPreviousDataLoad = today(0);
LET vCurrentDataLoad = today(1);
LET vApplicationOpened = today(2);
```

Resultat

När data har lästs in en andra gång, skapar du tre textrutor enligt anvisningarna nedan.

Skapa först en textruta för data som tidigare har lästs in.

Gör följande:

1. Skapa en textruta genom att använda diagramobjektet Text och bild.

2. Lägg till följande mått till objektet:

   `=vPreviousDataLoad`

3. Under Utseende, väljer du Show titles och lägger till rubriken "Tidigare inläsningstid" till objektet.

Skapa sedan en textruta för de data som för närvarande läses in.

Gör följande:

1. Skapa en textruta genom att använda diagramobjektet Text och bild.

2. Lägg till följande mått till objektet:

   `=vCurrentDataLoad`

3. Under Utseende, väljer du Show titles och lägger till rubriken "Aktuell inläsningstid" till objektet.

Skapa en sista textruta för att visa när användarens session i programmet startade.

Gör följande:

1. Skapa en textruta genom att använda diagramobjektet Text och bild.

2. Lägg till följande mått till objektet:

   `=vApplicationOpened`

3. Under Utseende, väljer du Show titles och lägger till rubriken "Användarsession startade" till objektet.

Diagram för variabler som skapats med `today()`-funktionen i laddningsskript

Diagram för variabler som skapats med `today()`-funktionen i laddningsskript

Diagram för variabler som skapats med `today()`today()-funktionen i laddningsskript![Diagram som visar hur var och en av de tre genererade textrutorna skulle kunna se ut efter att today()-funktionen har används för att ladda variablerna via laddningsskriptet.](https://help.qlik.com/sv-SE/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-today-example-variables-script.png)

Bilden ovan visar exempelvärden för var och en av de skapade variablerna. Värdena skulle exempelvis kunna se ut som följer:

* Föregående laddningstid: 2022-06-22

* Aktuell laddningstid: 2022-06-23

* Användarsessionen började: 2022-06-23

## Exempel 2 – generering av objekt utan laddningsskript

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/today.htm)

#### Laddningsskript och diagramuttryck

Översikt

I det följande exemplet skapas tre diagramobjekt med `today()`-funktionen. För vart och ett av diagramobjekten används ett av `timer_mode`-alternativen för att visa hur det fungerar.

Det finns inget laddningsskript för det här exemplet.

Resultat

När data har lästs in en andra gång skapar du tre textrutor.

Först skapar du en textruta för den senaste dataladdningen.

Gör följande:

1. Skapa en textruta genom att använda diagramobjektet Text och bild.

2. Lägg till följande mått:

   `=today(0)`

3. Under Utseende, väljer du Visa rubriker och lägger till rubriken "Senaste datainläsning" till objektet.

Skapa sedan en textruta för att visa aktuell tid.

Gör följande:

1. Skapa en textruta genom att använda diagramobjektet Text och bild.

2. Lägg till följande mått:

   `=today(1)`

3. Under Utseende, väljer du Visa rubriker och lägger till rubriken "Aktuell tid" till objektet.

Skapa en sista textruta för att visa när användarens session i programmet startade.

Gör följande:

1. Skapa en textruta genom att använda diagramobjektet Text och bild.

2. Lägg till följande mått:

   `=today(2)`

3. Under Utseende, väljer du Visa rubriker och lägger till rubriken "Användarsession började" till objektet.

Diagram för objekt som skapats med `today()`-funktionen utan laddningsskript

Diagram för objekt som skapats med `today()`-funktionen utan laddningsskript

Diagram för objekt som skapats med `today()`today()-funktionen utan laddningsskript![Diagram som visar hur de tre genererade textrutorna kan se ut efter att today()-funktionen har använts för att skapa enbart diagramobjekt, utan att några data har laddats in i programmet.](https://help.qlik.com/sv-SE/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-today-example-variables-chart.png)

Bilden ovan visar exempelvärden för vart och ett av de skapade objekten. Värdena skulle exempelvis kunna se ut som följer:

* Senaste dataladdning: 2022-06-23

* Aktuell tid: 2022-06-23

* Användarsessionen började: 2022-06-23

Diagramobjektet "Data laddades senast" använder ett `timer_mode`-värde på 0. Då returneras tidsmarkören för d en senaste tidpunkten som data senast laddades.

Diagramobjektet "Aktuell tid" använder ett `timer_mode`-värde på 1. Då returneras den aktuella tiden enligt systemklockan. Om arket eller objektet uppdateras kommer det här värdet att uppdateras.

Diagramobjektet "Användarsessionen började" använder ett `timer_mode`-värde på 2. Då returneras tidsmarkören för när programmet öppnades, och användarsessionen började.

## Exempel 3 – Scenario

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/today.htm)

#### Laddningsskript och diagramuttryck

Översikt

Öppn skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.

Laddningsskriptet innehåller:

* En datauppsättning som innehåller en uppsättning lånesaldon som laddas i en tabell som heter `Loans`.

* Tabelldata med fält för låne-ID, saldot vid månadens början och den enkla räntan som tas ut på varje lån per år.

Slutanvändaren vill ha ett diagramobjekt som visar, efter låne-id, den aktuella räntan som har ackumulerats för varje lån under månaden hittills. Programmet laddas bara en gång i veckan, men användaren vill att resultaten ska uppdateras varje gång objektet eller applikationen uppdateras.

Laddningsskript

```
Loans:
Load
*
Inline 
[
loan_id,start_balance,rate
8188,$10000.00,0.024
8189,$15000.00,0.057
8190,$17500.00,0.024
8191,$21000.00,0.034
8192,$90000.00,0.084
];
```

Resultat

Gör följande:

1. Ladda data och öppna ett ark. Skapa en ny tabell.

2. Lägg till följande fält som dimensioner:

   * `loan_id`

   * `start_balance`

3. Skapa sedan ett mått för att beräkna den ackumulerade räntan:

   `=start_balance*(rate*(today(1)-monthstart(today(1)))/365)`

4. Ange måttens Nummerformatering till Pengar.

Resultattabell

| loan\_id | start\_balance | =start\_balance\*(rate\*(today(1)-monthstart(today(1)))/365) |
| --- | --- | --- |
| 8188 | $10000.00 | $16.44 |
| 8189 | $15000.00 | $58.56 |
| 8190 | $17500.00 | $28.77 |
| 8191 | $21000.00 | $48.90 |
| 8192 | $90000.00 | $517.81 |

Genom att använda `today()`-funktionen för att returnera dagens datum som enda argument returnerar `monthstart()`-funktionen startdatumet för den aktuella månaden. Genom att använda `today()`-funktionen igen, denna gång för att subtrahera resultatet från det aktuella datumet, returnerar uttrycket antalet dagar som har förflutit hittills denna månad.

Detta värde multipliceras sedan med räntan och divideras med 365 för att returnera den effektiva räntan för perioden. Resultatet multipliceras sedan med lånets utgångssaldo för att returnera den upplupna räntan hittills denna månad.

Eftersom värdet 1 används som `timer_mode`-argument i `today()`-funktionen i uttrycket, kommer det returnerade datumet vara dagens datum och resultaten uppdateras på motsvarande sätt varje gång diagramobjektet uppdateras (genom att öppna programmet, uppdatera sidan, flytta sig mellan ark osv.).