---
title: "Dátum és idő"
description: "TapHome szkript dátum és idő: aktuális idő a NOW függvénnyel, dátumok összeállítása DATETIME függvénnyel, napok vagy órák hozzáadása, időtartamok TIMESPAN függvénnyel, időzóna-eltolás és Unix-idő."
url: "https://taphome.com/hu/docs/script/date-and-time/"
language: hu
lastmod: 2026-11-06
generator: hugo
ai:
  topics: ["date-time","timespan","timezone","scripting-language"]
  questions: ["Hogyan dolgozhatok dátummal és idővel a TapHome szkriptekben?","Hogyan hozhatok létre DateTime objektumot a TapHome-ban?","Hogyan kaphatom meg az aktuális dátumot és időt egy TapHome szkriptben?","Hogyan adhatok meg időtartamot a TIMESPAN függvénnyel?","Hogyan adhatok hozzá vagy vonhatok le időt egy DateTime értékből a DATETIMEADD függvénnyel?","Hogyan kaphatom meg a helyi időzóna eltolását a TapHome-ban?","Milyen tulajdonságai vannak egy DateTime objektumnak?","Hogyan ellenőrizhetem a szkriptben, hogy ma hétvége van-e?","Hogyan alakíthatok át egy Unix időbélyeget dátummá egy TapHome szkriptben?","Hogyan számíthatom ki a két dátum között eltelt percek számát?"]
---

# Dátum és idő

A TapHome szkript dátum- és időfüggvényei — NOW, DATETIME, DATETIMEADD, TIMESPAN és LOCALTIMEZONE —, valamint a datetime és timespan értékek tulajdonságai.

Utoljára frissítve: 2026-11-06

A dátum- és időfüggvények `datetime` értékeket (időpont) és `timespan` értékeket (időtartam) hoznak létre. Minden szkriptben működnek — smart rule-okban, értesítésekben, Modbus és Packet parser integrációban —, és a vezérlőegység időzónáját használják. Az oldalon szereplő összes függvényhez szükséges verzió: Core 2022.2 vagy újabb.

## NOW

A `NOW` a vezérlőegység aktuális dátumát és idejét adja vissza `datetime` értékként — alapértelmezetten helyi időben, a `NOW(Utc)` hívással UTC szerint.

```text
NOW()
NOW(kind)
```

| Név | Típus | Leírás |
|---|---|---|
| `kind` | `DateTimeKind`, nem kötelező | `Local` (alapértelmezett) vagy `Utc`. A `NOW(DateTimeKind.Utc)` ugyanaz, mint a `NOW(Utc)`. |

**Megjegyzések** — tulajdonság nem olvasható közvetlenül egy függvényhívásból: a `NOW().HOUR` kifejezést a szkript mentésekor elutasítja. Előbb tárold az értéket egy változóban.

**Példa**

```taphome
VAR now := NOW();
now.HOUR;
# Result: the current hour, 0 to 23
```

**Lásd még** — [DATETIME](https://taphome.com/hu/docs/script/date-and-time/#datetime), [A datetime értékek tulajdonságai](https://taphome.com/hu/docs/script/date-and-time/#datetime-properties).

## DATETIME

A `DATETIME` `datetime` értéket hoz létre a részeiből, szövegből vagy ezredmásodpercek számából; argumentumok nélkül hívva 1.1.0001 00:00 értéket ad vissza, nem az aktuális időt — arra a [NOW](https://taphome.com/hu/docs/script/date-and-time/#now) függvényt használd.

```text
DATETIME(year, month, day [, hour [, minute [, second [, millisecond [, kind]]]]])
DATETIME(text [, format])
DATETIME(text, kind)
DATETIME(milliseconds [, kind])
DATETIME()
```

| Név | Típus | Leírás |
|---|---|---|
| `year`, `month`, `day` | szám | Csak együtt adhatók meg. Az elhagyott időrészek értéke 0. |
| `hour` … `millisecond` | szám, nem kötelező | A nap időpontja. |
| `kind` | `DateTimeKind`, nem kötelező | `Local` (alapértelmezett) vagy `Utc`. |
| `text` | string | Dátum és idő szövegként. |
| `format` | string, nem kötelező | A `text` .NET formátuma, például `"dd.MM.yyyy HH:mm"`. |
| `milliseconds` | szám | Az 1.1.0001 óta eltelt ezredmásodpercek — a `TICKS` tulajdonság skálája, nem Unix-idő. |

**Megjegyzések**

- A formátum nélküli szöveget a vezérlőegység nyelvi beállításai szerint olvassa be. Használj ISO 8601 formátumot (`"2026-01-15T08:30:00"`), vagy adj meg formátumot, hogy az eredmény ne függjön ezektől.
- Az eltolást vagy `Z` jelet tartalmazó szöveg (`"2026-01-15T08:30:00Z"`) UTC értékként marad meg. Ha a `kind` értéke `Utc`, az időzóna-információ nélküli szöveget UTC szerint olvassa be.
- Unix-időhöz állítsd be az [UNIXTIME tulajdonságot](https://taphome.com/hu/docs/script/date-and-time/#datetime-properties).

**Példa**

```taphome
# dátum részekből: év, hónap, nap, idő
VAR start := DATETIME(2026, 1, 15, 8, 30, 0);
# dátum ISO 8601 szövegből és formátummal megadott szövegből
VAR iso := DATETIME("2026-01-15T08:30:00");
VAR custom := DATETIME("15.01.2026 08:30", "dd.MM.yyyy HH:mm");
# dátum részekből, UTC-ként jelölve
VAR utc := DATETIME(2026, 1, 15, 8, 30, 0, 0, DateTimeKind.Utc);
# az értelmezett dátum perce
custom.MINUTE;
# Result: 30
```

## DATETIMEADD

A `DATETIMEADD` új `datetime` értéket ad vissza, amelyet a megadott számú évvel, hónappal, nappal, órával, perccel, másodperccel és ezredmásodperccel eltol; a negatív számok visszafelé tolják.

```text
DATETIMEADD(datetime, years [, months [, days [, hours [, minutes [, seconds [, milliseconds]]]]]])
```

**Megjegyzések** — az eredeti érték nem változik. Január 31-hez egy hónapot adva február utolsó napját kapod. Intervallum hozzáadásához a `+` operátort is használhatod egy [timespan](https://taphome.com/hu/docs/script/date-and-time/#timespan) értékkel vagy ezredmásodpercek számával.

**Példa**

```taphome
# a vezérlőegység aktuális ideje
VAR now := NOW();
# egy nappal előre, két órával vissza
VAR tomorrow := DATETIMEADD(now, 0, 0, 1);
VAR twoHoursAgo := DATETIMEADD(now, 0, 0, 0, -2);
# egy hónappal január 31. után
VAR endOfFebruary := DATETIMEADD(DATETIME(2026, 1, 31), 0, 1);
# az eredmény napja
endOfFebruary.DAY;
# Result: 28
```

## TIMESPAN

A `TIMESPAN` `timespan` értéket — időtartamot — hoz létre, vagy ezredmásodpercekből, vagy napokból, órákból, percekből, másodpercekből és ezredmásodpercekből.

```text
TIMESPAN(milliseconds)
TIMESPAN(days, hours, minutes, seconds, milliseconds)
```

**Tulajdonságok** (csak olvashatók)

| Tulajdonság | Jelentés |
|---|---|
| `DAYS`, `HOURS`, `MINUTES`, `SECONDS`, `MILLISECONDS` | Az időtartam egy összetevője (a `HOURS` értéke 0 – 23). |
| `TOTALDAYS`, `TOTALHOURS`, `TOTALMINUTES`, `TOTALSECONDS`, `TOTALMILLISECONDS` | A teljes időtartam az adott egységben, törtrésszel. |

**Megjegyzések**

- Csak az 1 és az 5 argumentumos alak létezik; 2–4 argumentum leállítja a szkriptet.
- A `timespan ± timespan` eredménye `timespan`, a `datetime ± timespan` eredménye `datetime`.
- Két `datetime` érték kivonása nincs definiálva. A két dátum között eltelt időhöz a `TICKS` értékeiket (ezredmásodperceket) vond ki egymásból.
- A `timespan` típuskulcsszóval történő változódeklarációhoz szükséges verzió: Core 2023.2 vagy újabb.

**Példa**

```taphome
VAR t := TIMESPAN(1, 2, 3, 4, 0);
t.TOTALSECONDS;
# Result: 93784
```

```taphome
VAR start := DATETIME(2026, 1, 15, 8, 0, 0);
VAR stop := DATETIME(2026, 1, 15, 9, 30, 0);
(stop.TICKS - start.TICKS) / 60000;
# Result: 90 (minutes)
```

**Hibák** — *TIMESPAN Unsupported number of parameters*; *Operator '-' not defined for 'DateTime' and 'DateTime'*.

## LOCALTIMEZONE

A `LOCALTIMEZONE` a vezérlőegység időzónájának UTC-hez viszonyított aktuális eltolását adja vissza ezredmásodpercben, a nyári időszámítással együtt.

```text
LOCALTIMEZONE()
```

**Példa**

```taphome
LOCALTIMEZONE() / 3600000;
# Result: 1 in Central European winter time, 2 in summer time
```

## A datetime értékek tulajdonságai

A `datetime` érték a következő tulajdonságokkal rendelkezik. Változóból olvasd őket, ne függvényhívásból.

| Tulajdonság | Olvasás | Írás | Megjegyzés |
|---|---|---|---|
| `TICKS` | ✓ | ✓ | Az 1.1.0001 óta eltelt ezredmásodpercek. |
| `YEAR`, `MONTH`, `DAY` | ✓ | ✓ | Íráskor ellenőrzi a tartományt (`MONTH` 1 – 12, `DAY` 1 – a hónap utolsó napja). |
| `HOUR`, `MINUTE`, `SECOND`, `MILLISECOND` | ✓ | ✓ | Tartományok: 0 – 23, 0 – 59, 0 – 59, 0 – 999. |
| `DAYOFWEEK` | ✓ | | `DayOfWeek` érték (`Monday` … `Sunday`). |
| `DAYOFYEAR` | ✓ | | 1 – 366. |
| `KIND` | ✓ | ✓ | `DateTimeKind`: `Local`, `Utc` vagy `Unspecified`. |
| `UTCDATETIME`, `LOCALDATETIME` | ✓ | | Ugyanaz az időpont a vezérlőegység időzónájával átszámítva. |
| `UNIXTIME` | ✓ | ✓ | Az 1970.1.1 UTC óta eltelt másodpercek. Íráskor UTC értéket tárol. |

**Megjegyzések**

- Függvényargumentumon kívül a felsorolt értéket a típusával együtt kell írni: `DayOfWeek.Saturday`. A magában álló `Saturday` ismeretlen változó.
- A `<`, `>` és `=` két `datetime` értéket időpontként hasonlít össze, így a különböző `KIND` értékű dátumok is helyesen hasonlíthatók össze.
- A tartományon kívüli érték írása leállítja a szkriptet, például *Value must between 0-23*.
- Formátum nélkül a [TOSTRING](https://taphome.com/hu/docs/script/data-type-conversions/#tostring) a `datetime` értéket `yyyy/MM/dd hh:mm:ss.fff` alakban írja ki — 12 órás formátumban, AM vagy PM jelölés nélkül. Adj meg formátumot, például `"yyyy-MM-dd HH:mm"`.

**Példa — nincs művelet hétvégén**

```taphome
# a vezérlőegység aktuális ideje
VAR now := NOW();
# szombaton és vasárnap 0-t ad vissza
IF now.DAYOFWEEK = DayOfWeek.Saturday OR now.DAYOFWEEK = DayOfWeek.Sunday
    RETURN(0);
END
# a többi napon 1-et ad vissza
1;
```

**Példa — dátum Unix időbélyegből**

```taphome
datetime d;
d.UNIXTIME := 1767225600;
d.YEAR;
# Result: 2026 (1 January 2026, 00:00 UTC)
```

**Lásd még** — [Formátumszövegek](https://taphome.com/hu/docs/script/data-type-conversions/#format-strings), [Adattípusok](https://taphome.com/hu/docs/script/data-types/).
