# now Функция скрипта и диаграммы

В Qlik Sense под управлением клиента, эта функция возвращает Метку времени текущего времени. Эта функция возвращает значения в формате системной переменной TimeStamp. Значение по умолчанию timer\_mode — 1.

now([ timer\_mode])

Возвращаемые типы данных: Двойное значение

Функцию `now()` можно использовать в скрипте загрузки или в объектах диаграммы.

Аргументы

| Аргумент | Описание |
| --- | --- |
| timer\_mode | Может иметь следующие значения:<br><br>0 (время последней завершенной загрузки данных)<br>1 (время вызова функции)<br>2 (время, когда приложение было открыто)<br><br>Примечание к информацииЕсли вы используете функцию в скрипте загрузки данных, функция timer\_mode=0 выдаст время последней завершенной загрузки данных, а timer\_mode=1 выдаст время вызова функции в текущей загрузке данных. |

Примечание к подсказкеФункция `now()` оказывает значительное влияние на быстродействие, в результате чего могут возникать проблемы с прокруткой, если эта функция используется в выражениях таблицы. Когда ее использование не является абсолютно необходимым, рекомендуется использовать вместо нее функцию `today()`. Если макет требует использования `now()`, рекомендуется по возможности применять параметры `now(0)` или `now(2)`, не используемые по умолчанию, так как они не требуют постоянных перерасчетов.

## Когда это следует использовать

Функция `now()` часто используется как компонент внутри выражения. Например, ее можно использовать для вычисления оставшегося времени жизненного цикла продукта. Функцию `now()` рекомендуется использовать вместо функции `today()`, когда в выражении требуется учитывать часть дня.

В следующей таблице приводится объяснение результата, возвращаемого функцией `now()`, в зависимости от различных значений аргумента `timer_mode`:

Примеры функции

| Значение timer\_mode | Результат при использовании в скрипте загрузки | Результат при использовании в объекте диаграммы |
| --- | --- | --- |
| 0 | Возвращает метку времени в формате системной переменной `TimeStamp` для последней успешной перезагрузки данных, предшествующей самой последней перезагрузке данных. | Возвращает метку времени в формате системной переменной `TimeStamp` для даты последней перезагрузки данных. |
| 1 | Возвращает метку времени в формате системной переменной `TimeStamp` для даты последней перезагрузки данных. | Возвращает метку времени вызова функции в формате системной переменной `TimeStamp`. |
| 2 | Возвращает метку времени в формате системной переменной `TimeStamp` для начала сеанса пользователя в приложении. Это значение не будет обновляться, если пользователь не перезагрузит скрипт. | Возвращает метку времени в формате системной переменной `TimeStamp` для начала сеанса пользователя в приложении. Это значение будет обновляться в случае начала нового сеанса или перезагрузки данных в приложение. |

## Региональные настройки

Если не указано иное, в примерах, приведенных в данном разделе, используется следующий формат даты: MM/DD/YYYY. Формат даты указан в операторе `SET DateFormat` скрипта загрузки данных. В вашей системе может быть установлен другой формат даты по умолчанию в зависимости от региональных настроек и других факторов. Можно изменить формат в примерах в соответствии с потребностями. Или можно изменить форматы в скрипте загрузки в соответствии с этими примерами.

Региональные настройки по умолчанию в приложениях основаны на системных региональных настройках компьютера или сервера, где установлено ПО Qlik Sense. Если на сервере Qlik Sense, к которому вы обращаетесь, выбран шведский язык, то редактор загрузки данных будет использовать шведские региональные настройки для даты, времени и валюты. Эти параметры регионального формата не связаны с языком, отображаемым в Qlik Sense интерфейсе пользователя. Qlik Sense будет отображаться на том же языке, что и используемый вами браузер.

## Пример 1. Создание объектов с использованием скрипта загрузки

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

#### Скрипт загрузки и результаты

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже Скрипт загрузки на новую вкладку.

Этот пример создает три переменные с использованием функции `now()`. Каждая переменная использует один из параметров `timer_mode` для демонстрации эффекта.

Чтобы продемонстрировать назначение переменных, перезагрузите скрипт, а затем, через короткий период времени, выполните вторую перезагрузку. Это приведет к тому, что переменные `now(0)` и `now(1)` будут показывать разные значения, тем самым правильно демонстрируя свое назначение.

Скрипт загрузки

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

Результаты

После загрузки данных во второй раз создайте три текстовых поля, следуя приведенным ниже инструкциям.

Сначала создайте текстовое поле для данных, загруженных ранее.

Выполните следующие действия.

1. Создайте текстовое поле, используя объект диаграммы Текст и изображение.

2. Добавьте в объект следующую меру:

   `=vPreviousDataLoad`

3. В области Вид выберите Show titles и добавьте в объект заголовок «Время предыдущей загрузки».

Затем создайте текстовое поле для данных, которые загружены в данный момент.

Выполните следующие действия.

1. Создайте текстовое поле, используя объект диаграммы Текст и изображение.

2. Добавьте в объект следующую меру:

   `=vCurrentDataLoad`

3. В области Вид выберите Show titles и добавьте в объект заголовок «Время текущей загрузки».

Создайте последнее текстовое поле, в котором будет отображаться время начала сеанса пользователя в приложении.

Выполните следующие действия.

1. Создайте текстовое поле, используя объект диаграммы Текст и изображение.

2. Добавьте в объект следующую меру:

   `=vApplicationOpened`

3. В области Вид выберите Show titles и добавьте в объект заголовок «Начало сеанса пользователя».

`now()` Скрипт загрузки переменные

`now()` Скрипт загрузки переменные

`now()`now() Скрипт загрузки переменные ![Diagram showing what each of the three generated textboxes could look like after using the now() function to load the variables via the load script.](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-now-example-load-script.png)

В приведенной выше диаграмме показаны примерные значения для каждой из созданных переменных. Например, это могут быть следующие значения:

* Время предыдущей перезагрузки: 6/22/2022 8:54:03 AM

* Время текущей перезагрузки: 6/22/2022 9:02:08 AM

* Начало сеанса пользователя: 6/22/2022 8:40:40 AM

## Пример 2. Создание объектов без использования скрипта загрузки

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

#### Скрипт загрузки и выражение диаграммы

Обзор

В этом примере используются три объекта диаграммы с помощью функции `now()` и без загрузки переменных или данных в приложение. Каждый объект диаграммы использует один из параметров `timer_mode` для демонстрации своего эффекта.

Для этого примера не предусмотрен скрипт загрузки.

Выполните следующие действия.

1. Откройте Редактор загрузки данных.

2. Не изменяя существующий скрипт загрузки, щелкните Загрузить данные.

3. Через короткий период времени загрузите скрипт повторно.

Результаты

После загрузки данных во второй раз создайте три текстовых поля.

Сначала создайте текстовое поле для последней перезагрузки данных.

Выполните следующие действия.

1. Создайте текстовое поле, используя объект диаграммы Текст и изображение.

2. Добавьте следующую меру.

   `=now(0)`

3. В области Вид выберите Показать заголовки и добавьте в объект заголовок «Последняя перезагрузка данных».

Затем создайте текстовое поле для отображения текущего времени.

Выполните следующие действия.

1. Создайте текстовое поле, используя объект диаграммы Текст и изображение.

2. Добавьте следующую меру:

   `=now(1)`

3. В области Вид выберите Показать заголовки и добавьте в объект заголовок «Текущее время».

Создайте последнее текстовое поле, в котором будет отображаться время начала сеанса пользователя в приложении.

Выполните следующие действия.

1. Создайте текстовое поле, используя объект диаграммы Текст и изображение.

2. Добавьте следующую меру:

   `=now(2)`

3. В области Вид выберите Показать заголовки и добавьте в объект заголовок «Начало сеанса пользователя».

Примеры объектов диаграммы `now()`

Примеры объектов диаграммы `now()`

Примеры объектов диаграммы `now()`now() ![Diagram showing what each of the three generated textboxes could look like after using the now() function to create chart objects only, with no data loaded into the application.](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-now-example-no-data-loaded.png)

В приведенной выше диаграмме показаны примерные значения для каждого из созданных объектов. Например, это могут быть следующие значения:

* Последняя перезагрузка данных: 6/22/2022 9:02:08 AM

* Текущее время: 6/22/2022 9:25:16 AM

* Начало сеанса пользователя: 6/22/2022 8:40:40 AM

Объект диаграммы «Последняя перезагрузка данных» использует значение `timer_mode` = 0. Это возвращает Метка времени последней успешной перезагрузки данных.

Объект диаграммы «Текущее время» использует значение `timer_mode` = 1. Это возвращает текущее время по системным часам. В случае обновления листа или объекта это значение обновляется.

Объект диаграммы «Начало сеанса пользователя» использует `timer_mode` = 2. Это возвращает Метку времени для момента открытия приложения и начала сеанса пользователя.

## Пример 3. Сценарий

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

#### Скрипт загрузки и выражение диаграммы

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных, содержащий инвентарь для операции майнинга криптовалюты, который загружается в таблицу под именем `Inventory`.

* Данные со следующими полями: `id`, `purchase_date` и `wph` (ватт в час).

Пользователю нужна таблица, в которой по `id` отображается общая стоимость каждой фермы для майнинга, начисленная за месяц до текущего момента с точки зрения энергопотребления.

Это значение должно обновляться при каждом обновлении объекта диаграммы. Текущая стоимость электричества составляет $0.0678 за кВт⋅ч.

Скрипт загрузки

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

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте это поле как измерение: `id`.

Создайте следующую меру:

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

Если объект диаграммы был обновлен в 6/22/2022 10:39:05 AM, он должен вернуть следующие результаты:

Результирующая таблица

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

Пользователю требуется, чтобы результаты объекта обновлялись каждый раз при обновлении самого объекта. Поэтому аргумент `timer_mode` предоставлен для экземпляров функции `now()` в приложении. Метка времени для начала месяца, определенного с использованием функции `now()` в качестве аргумента метки времени в функции `monthstart()`, вычитается из текущего времени, определенного с помощью функции `now()`. Это дает общее количество прошедшего времени в этом месяце, выраженное в днях.

Это значение умножается на 24 (количество часов в сутках), а затем на значение в `wph` поле.

Чтобы преобразовать значение из Вт⋅ч в кВт⋅ч, результат делится на 1000 перед заключительным умножением на тариф оплаты за кВт⋅ч.