# now — funkcja skryptu i funkcja wykresu

Ta funkcja zwraca znacznik bieżącego czasu. Funkcja zwraca wartości w formacie zmiennej systemowej TimeStamp. Wartością domyślną timer\_mode jest 1.

Składnia:

now([ timer\_mode])

Typ zwracanych danych: wartość podwójna

Funkcji `now()` można użyć w skrypcie ładowania lub w obiektach wykresów.

Argumenty

| Argument | Opis |
| --- | --- |
| timer\_mode | Może przyjmować następujące wartości:<br><br>0 (czas ostatnio zakończonego ładowania danych)<br>1 (czas w momencie wywołania funkcji)<br>2 (czas w momencie otwarcia aplikacji)<br><br>InformacjaW przypadku użycia funkcji w skrypcie ładowania danych parametr timer\_mode=0 da wynik będący czasem ostatnio zakończonego ładowania danych, z kolei parametr timer\_mode=1 zwróci czas wywołania funkcji w bieżącym ładowaniu danych. |

WskazówkaFunkcja `now()` ma wpływ na wysoką wydajność, co może powodować problemy z przewijaniem, jeśli jest używana w wyrażeniach tabel. Zawsze, gdy jej użycie nie jest bezwzględnie konieczne, zalecamy używanie zamiast niej funkcji `today()`. Jeżeli użycie funkcji `now()` jest wymagane w układzie, zalecamy użycie innych niż domyślne ustawień `now(0)`lub `now(2)`, jeśli to możliwe, ponieważ nie wymagają one ciągłych ponownych obliczeń

## Kiedy używać

Funkcja `now()` jest używana jako element wyrażenia. Za jej pomocą można na przykład obliczyć pozostały czas cyklu życia produktu. Gdyby wyrażenie wymagało użycia ułamka dnia, zamiast funkcji `today()` użyto by funkcji `now()`.

Poniższa tabela zawiera objaśnienie wyniku zwracanego przez funkcję `now()` dla różnych wartości argumentu `timer_mode`:

Przykłady funkcji

| timer\_mode value | Wynik w przypadku użycia w skrypcie ładowania | Wynik w przypadku użycia w obiekcie wykresu |
| --- | --- | --- |
| 0 | Zwraca znacznik czasu, w formacie zmiennej systemowej `TimeStamp`, ostatniego udanego przeładowania danych przed ostatnim załadowaniem danych. | Zwraca znacznik czasu, w formacie zmiennej systemowej `TimeStamp`, ostatniego przeładowania danych. |
| 1 | Zwraca znacznik czasu, w formacie zmiennej systemowej `TimeStamp`, ostatniego przeładowania danych. | Zwraca znacznik czasu, w formacie zmiennej systemowej `TimeStamp`, wywołania funkcji. |
| 2 | Zwraca znacznik czasu, w formacie zmiennej systemowej `TimeStamp`, początku sesji użytkownika w aplikacji. Zostanie on zaktualizowany dopiero po ponownym załadowaniu skryptu przez użytkownika. | Zwraca znacznik czasu, w formacie zmiennej systemowej `TimeStamp`, początku sesji użytkownika w aplikacji. Będzie on odświeżany na początku sesji lub po ponownym załadowaniu danych do aplikacji. |

## Ustawienia regionalne

Jeżeli nie podano inaczej, w przykładach w tym temacie stosowany jest następujący format daty: MM/DD/RRRR. Format daty jest określony w instrukcji `SET DateFormat` w skrypcie ładowania danych. Domyślny format daty w Twoim systemie może być inny ze względu na ustawienia regionalne i inne czynniki. Formaty zastosowane w przykładach można zmienić, aby dostosować je do własnych wymagań. Zamiast tego można też zmienić formaty w skrypcie ładowania, aby pasowały do tych przykładów.

Domyślne ustawienia regionalne w aplikacjach są oparte na regionalnych ustawieniach systemu komputera lub serwera, na którym zainstalowano Qlik Sense. Jeśli serwer Qlik Sense, do którego uzyskujesz dostęp, jest ustawiony na Szwecję, Edytor ładowania danych użyje szwedzkich ustawień regionalnych dla dat, godziny i waluty. Te ustawienia regionalne nie są związane z językiem wyświetlanym w interfejsie użytkownika Qlik Sense. Interfejs Qlik Sense będzie wyświetlany w tym samym języku co używana przeglądarka.

## Przykład 1 – generowanie obiektów przy użyciu skryptu ładowania

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

#### Skrypt ładowania i wyniki

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej karty.

Ten przykład tworzy trzy zmienne za pomocą funkcji `now()`. Każda zmienna używa jednej z opcji `timer_mode` w celu zademonstrowania tego efektu.

Aby zademonstrować przeznaczenie zmiennych, przeładuj skrypt, a następnie, po krótkim czasie, przeładuj go po raz drugi. Spowoduje to, że zmienne `now(0)` i `now(1)` będą miały różne wartości, co będzie stanowiło właściwą demonstrację ich przeznaczenia.

Skrypt ładowania

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

Wyniki

Gdy dane zostaną załadowane po raz drugi, utwórz trzy pola tekstowe, korzystając z poniższych wskazówek.

Najpierw utwórz pole tekstowe dla danych, które zostały wcześniej załadowane.

Wykonaj następujące czynności:

1. Używając obiektu wykresu Tekst i grafika, utwórz pole tekstowe.

2. Dodaj następującą miarę do obiektu:

   `=vPreviousDataLoad`

3. W sekcji Wygląd wybierz Show titles i dodaj do obiektu tytuł „Previous Reload Time”.

Następnie utwórz pole tekstowe dla danych, które są aktualnie ładowane.

Wykonaj następujące czynności:

1. Używając obiektu wykresu Tekst i grafika, utwórz pole tekstowe.

2. Dodaj następującą miarę do obiektu:

   `=vCurrentDataLoad`

3. W sekcji Wygląd wybierz Show titles i dodaj do obiektu tytuł „Current Reload Time”.

Utwórz ostatnie pole tekstowe, aby pokazać, kiedy sesja użytkownika w aplikacji została rozpoczęta.

Wykonaj następujące czynności:

1. Używając obiektu wykresu Tekst i grafika, utwórz pole tekstowe.

2. Dodaj następującą miarę do obiektu:

   `=vApplicationOpened`

3. W sekcji Wygląd wybierz Show titles i dodaj do obiektu tytuł „User Session Started”.

Zmienne skryptu ładowania `now()`

Zmienne skryptu ładowania `now()`

Zmienne skryptu ładowania `now()`now()![Diagram pokazujący, jak może wyglądać każde z trzech wygenerowanych pól tekstowych po użyciu funkcji now() w celu załadowania zmiennych przez skrypt ładowania.](https://help.qlik.com/pl-PL/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-now-example-load-script.png)

Powyższy obraz pokazuje przykładowe wartości dla każdej z utworzonych zmiennych. Na przykład, te wartości mogą być następujące:

* Czas poprzedniego przeładowania: 22.06.2022 r., godz. 8:54:03

* Czas bieżącego przeładowania: 22.06.2022 r., godz. 9:02:08

* Początek sesji użytkownika: 22.06.2022 r., godz. 8:40:40

## Przykład 2 – generowanie obiektów bez skryptu ładowania

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

#### Skrypt ładowania i wyrażenie wykresu

Przegląd

W tym przykładzie utworzymy trzy obiekty wykresu za pomocą funkcji `now()`, bez ładowania jakichkolwiek zmiennych lub danych do aplikacji. Każdy obiekt wykresu używa jednej z opcji `timer_mode` w celu zademonstrowania tego efektu.

W tym przykładzie nie ma skryptu ładowania.

Wykonaj następujące czynności:

1. Otwórz edytor ładowania danych.

2. Kliknij pozycję Załaduj dane, nie zmieniając istniejącego skryptu ładowania.

3. Po krótkim czasie załaduj skrypt drugi raz.

Wyniki

Po załadowaniu danych drugi raz utwórz trzy pola tekstowe.

Najpierw utwórz pole tekstowe dla ostatniego przeładowania danych.

Wykonaj następujące czynności:

1. Używając obiektu wykresu Tekst i grafika, utwórz pole tekstowe.

2. Dodaj następującą miarę:

   `=now(0)`

3. W sekcji Wygląd wybierz Pokaż tytuły i dodaj do obiektu tytuł „Latest Data Reload”.

Następnie utwórz pole tekstowe, aby pokazać bieżący czas.

Wykonaj następujące czynności:

1. Używając obiektu wykresu Tekst i grafika, utwórz pole tekstowe.

2. Dodaj następującą miarę:

   `=now(1)`

3. W sekcji Wygląd wybierz Pokaż tytuły i dodaj do obiektu tytuł „Current Time”.

Utwórz ostatnie pole tekstowe, aby pokazać, kiedy sesja użytkownika w aplikacji została rozpoczęta.

Wykonaj następujące czynności:

1. Używając obiektu wykresu Tekst i grafika, utwórz pole tekstowe.

2. Dodaj następującą miarę:

   `=now(2)`

3. W sekcji Wygląd wybierz Pokaż tytuły i dodaj do obiektu tytuł „User Session Began”.

Przykłady obiektu wykresu `now()`

Przykłady obiektu wykresu `now()`

Przykłady obiektu wykresu `now()`now()![Diagram pokazujący, jak mogłoby wyglądać każde z trzech wygenerowanych pól tekstowych po użyciu funkcji now() w celu utworzenia tylko obiektów wykresu, bez załadowania danych do aplikacji.](https://help.qlik.com/pl-PL/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-now-example-no-data-loaded.png)

Powyższy obraz pokazuje przykładowe wartości dla każdego z utworzonych obiektów. Na przykład, te wartości mogą być następujące:

* Ostatnie przeładowanie danych: 22.06.2022 r., godz. 9:02:08

* Bieżący czas: 22.06.2022 r., godz. 9:25:16

* Początek sesji użytkownika: 22.06.2022 r., godz. 8:40:40

Obiekt wykresu „Ostatnie przeładowanie danych” używa argumentu `timer_mode` o wartości 0. Powoduje to zwrócenie znacznika czasu ostatniego udanego przeładowania danych.

Obiekt wykresu „Bieżący czas” używa argumentu `timer_mode` o wartości 1. Powoduje to zwrócenie bieżącego czasu według zegara systemowego. Jeśli arkusz lub obiekt zostanie odświeżony, ta wartość zostanie zaktualizowana.

Obiekt wykresu „Początek sesji użytkownika” używa argumentu `timer_mode` o wartości 2. Powoduje to zwrócenie znacznika czasu otwarcia aplikacji i rozpoczęcia sesji użytkownika.

## Przykład 3 — zastosowanie

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

#### Skrypt ładowania i wyrażenie wykresu

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych zawierający magazyn operacji kopania kryptowalut, który jest załadowany do tabeli o nazwie `Inventory`.

* Dane z następującymi polami: `id`, `purchase_date` i `wph` (waty na godzinę).

Użytkownik chciałby otrzymać tabelę pokazującą, według `id`, sumę kosztów wygenerowanych przez każdy sprzęt wydobywczy w ciągu miesiąca do tej pory, wyrażoną według zużycia energii.

Ta wartość powinna być aktualizowana po każdym odświeżeniu obiektu wykresu. Obecnie cena energii elektrycznej wynosi 0,0678 dolara za kWh.

Skrypt ładowania

```
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
];
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj to pole jako wymiar: `id`.

Utwórz następującą miarę:

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

Gdyby obiekt wykresu odświeżono 22.06.2022 o godz. 10:39:05, zwróciłby następujący wynik:

Tabela wynikowa

| 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 |

Użytkownik chciałby, aby wyniki obiektu były odświeżane po każdym odświeżeniu tego obiektu. Dlatego przekazano argument `timer_mode` dla egzemplarzy funkcji `now()` w wyrażeniu. Znacznik czasu początku miesiąca, zidentyfikowany przez użycie funkcji `now()` jako argumentu znacznika czasu funkcji `monthstart()`, zostaje odjęty od bieżącego czasu, który jest identyfikowany przez funkcję `now()`. W wyniku otrzymujemy sumę czasu w dniach, jaki upłynął do tej pory od początku miesiąca.

Ta wartość zostaje pomnożona przez 24 (liczba godzin w dobie), a następnie przez wartość obecną w polu `wph`.

Aby zamienić waty na godzinę na kilowaty na godzinę, wynik zostaje podzielony przez tysiąc przed wykonaniem mnożenia przez cenę jednej kilowatogodziny.