# now - skript- och diagramfunktion

Denna funktion returnerar en tidsmarkör för aktuell tid. Denna funktion returnerar värdet i TimeStamp-systemvariabelformat. Som standard är timer\_mode-värdet 1.

Syntax:

now([ timer\_mode])

Returnerad datatyp: dual

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

Argument

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

Anteckning om tips`now()`-funktionen har stor påverkan på prestanda som kan ge rullningsproblem om funktionen används i tabelluttryck. Om det inte är absolut nödvändigt att använda den rekommenderar vi att använda funktionen `today()` i stället. Om det är nödvändigt att använda `now()` i en layout rekommenderar vi att använda icke-standardinställningarna `now(0)` eller `now(2)`, om det är möjligt, eftersom de inte kräver konstanta omberäkningar

## Användning

`now()`-funktionen används vanligen som en komponenten inom ett uttryck. Det kan exempelvis användas för att beräkna den återstående tiden i en produkts livscykel. `now()`-funktionen används i stället för `today()`-funktionen när uttrycket kräver att en del av en dag används.

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

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 en tidsmarkör, i formatet för systemvariabeln `TimeStamp`, för den sista slutförda dataladdningen före den senaste dataladdningen | Returnerar en tidsmarkör, i formatet för systemvariabeln `TimeStamp`, för den senaste dataladdningen. |
| 1 | Returnerar en tidsmarkör, i formatet för systemvariabeln `TimeStamp`, för den senaste dataladdningen. | Returnerar tidsmarkören, i formatet för systemvariabeln `TimeStamp`, för funktionsanropet. |
| 2 | Returnerar en tidsmarkör, i formatet för systemvariabeln `TimeStamp`, för när användarens session i programmet började. Detta uppdateras inte, såvida inte användaren laddar skriptet. | Returnerar en tidsmarkör, i formatet för systemvariabeln `TimeStamp`, 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. |

## 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/now.htm)

#### Laddningsskript och resultat

Översikt

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

I det här exemplet skapas tre variabler med `now()`-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, efter en kort stund, ytterligare en gång. Resultatet blir att `now(0)`- och `now(1)`-variablernas funktionalitet framgår genom att de visar olika värden.

Laddningsskript

```
LET vPreviousDataLoad = now(0);
LET vCurrentDataLoad = now(1);
LET vApplicationOpened = now(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.

`now()`-laddningsskriptsvariabler

`now()`-laddningsskriptsvariabler

`now()`now()-laddningsskriptsvariabler![Diagram som visar hur var och en av de tre genererade textrutorna skulle kunna se ut efter att now()-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-now-example-load-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: 6/22/2022 8:54:03

* Aktuell laddningstid: 6/22/2022 9:02:08 AM

* Användarsessionen började: 6/22/2022 8:40:40 AM

## Exempel 2 – generering av objekt utan laddningsskript

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

#### Laddningsskript och diagramuttryck

Översikt

I det här exemplet kommer du att skapa tre diagramobjekt med `now()`-funktionen utan att ladda några variabler eller data till programmet. 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.

Gör följande:

1. Öppna Skriptredigeraren.

2. Klicka på Läs in data utan att ändra det befintliga laddningsskriptet.

3. Efter en kort stund laddar du skriptet på nytt.

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:

   `=now(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:

   `=now(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:

   `=now(2)`

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

Exempel på `now()`-diagramobjekt

Exempel på `now()`-diagramobjekt

Exempel på `now()`now()-diagramobjekt![Diagram som visar hur de tre genererade textrutorna kan se ut efter att now()-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-now-example-no-data-loaded.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:

* Data laddades senast: 6/22/2022 9:02:08

* Aktuell tid: 6/22/2022 9:25:16

* Användarsessionen började: 6/22/2022 8:40:40 AM

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/now.htm)

#### Laddningsskript och diagramuttryck

Översikt

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

Laddningsskriptet innehåller:

* En datauppsättning som består av ett lager för en åtgärd för mining av kryptovaluta, som laddas i en tabell som heter `Inventory`.

* Data med följande fält: `id`, `purchase_date` och `wph` (watt per timma).

Användaren behöver en tabell som visar den totala kostnaden för varje miningrigg hittills under månaden avseende strömförbrukning, sorterat på `id`.

Om allt stämmer ska det här värdet uppdateras när diagramobjektet uppdateras. Den aktuella kostnaden för el är 0,0678 USD per kWH.

Laddningsskript

```
SET DateFormat='MM/DD/YYYY';

Inventory:
Load
*
Inline 
[
id,purchase_date,wph
8188,1/7/2022,1123
8189,1/19/2022,1432
8190,2/28/2022,1227
8191,2/5/2022,1322
8192,3/16/2022,1273
8193,4/1/2022,1123
8194,5/7/2022,1342
8195,5/16/2022,2342
8196,6/15/2022,1231
8197,6/26/2022,1231
8198,7/9/2022,1123
8199,7/22/2022,1212
8200,7/23/2022,1223
8201,7/27/2022,1232
8202,8/2/2022,1232
8203,8/8/2022,1211
8204,8/19/2022,1243
8205,9/26/2022,1322
8206,10/14/2022,1133
8207,10/29/2022,1231
];
```

Resultat

Ladda data och öppna ett ark. Skapa en ny tabell och lägg till det här fältet som en dimension: `id`.

Skapa följande mått:

`=(now(1)-monthstart(now(1)))*24*wph/1000*0.0678`

Om diagramobjektet var uppdaterades 22/06/2022 10:39:05 skulle det returnera följande resultat:

Resultattabell

| id | =(now(1)-monthstart(now(1)))\*24\*wph/1000\*0.0678 |
| --- | --- |
| 8188 | $39.18 |
| 8189 | $49.97 |
| 8190 | $42.81 |
| 8191 | $46.13 |
| 8192 | $44.42 |
| 8193 | $39.18 |
| 8194 | $46.83 |
| 8195 | $81.72 |
| 8196 | $42.95 |
| 8197 | $42.95 |
| 8198 | $39.18 |
| 8199 | $42.29 |
| 8200 | $42.67 |
| 8201 | $42.99 |
| 8202 | $42.99 |
| 8203 | $42.25 |
| 8204 | $43.37 |
| 8205 | $46.13 |
| 8206 | $39.53 |

Användaren vill att objektresultaten ska uppdateras varje gång objektet uppdateras. Därför finns `timer_mode`-argumentet med tillhandahållna instanser i `now()`-funktionen i uttrycket. Tidsmarkören för början av månaden, som identifieras genom att använda `now()`-funktionen som tidsmarkörargument i `monthstart()`-funktionen subtraheras från den aktuella tiden som identifieras med `now()`-funktionen. Detta ger den totala tidsmängden som har förflutit hittills under månaden, i dagar.

Det här värdet multipliceras med 24 (antalet timmar på ett dygn) och därefter med värdet i `wph`-fältet.

Resultatet divideras med 1000 så att det konverteras från watt per timma till kilowatt per timma innan det slutligen multipliceras med den angivna kWh-taxan.