---
title: "Časové obdobia — Metrics for Laravel | Roundly"
description: "20 prednastavených období od dneška po minulý rok, vlastné okná, časové pásmo pre každú metriku a enum Period pre výbery a validáciu."
url: https://roundly-consulting.com/sk/open-source/navody/metrics-for-laravel/casove-obdobia
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Metrics for Laravel](https://roundly-consulting.com/sk/open-source/navody/metrics-for-laravel.md)

# Časové obdobia

Každú metriku vyfiltrujete cez range(). Prijíma prípad enumu Period alebo jeho reťazcovú hodnotu — sú zameniteľné — a pre vlastné okno aj explicitný začiatok a koniec:

```php
use RoundlyConsulting\Metrics\Enums\Period;

$metric->range('MTD');                 // month to date
$metric->range(Period::MonthToDate);   // identical
$metric->range(Period::ThisQuarter);   // the full current quarter
$metric->range(Period::Custom, '2024-01-01 00:00:00', '2024-03-01 00:00:00');
$metric->range(Period::All);           // no date filtering (the default)
```

Koniec zadaný len ako dátum ('2024-03-01', presne to, čo posiela výber dátumu) znamená celý ten deň, takže okno sa končí o 23:59:59; koniec s časom ('2024-03-01 00:00:00') sa použije presne tak, ako je zadaný.

## Všetky obdobia

| Kľúč | Prípad enumu | Popis (label) | Okno |
| --- | --- | --- | --- |
| `7, 14, 30, 60, 90, 365` | `Days7 … Days365` | 7 Days … 365 Days | Posledných N dní až po teraz |
| `TODAY` | `Today` | Today | Dnešok od začiatku do konca dňa |
| `YESTERDAY` | `Yesterday` | Yesterday | Celý včerajšok |
| `WTD` | `WeekToDate` | Week To Date | Od pondelka tohto týždňa po teraz |
| `MTD` | `MonthToDate` | Month To Date | Od začiatku mesiaca po teraz |
| `QTD` | `QuarterToDate` | Quarter To Date | Od začiatku štvrťroka po teraz |
| `YTD` | `YearToDate` | Year To Date | Od začiatku roka po teraz |
| `THIS_WEEK` | `ThisWeek` | This Week | Celý aktuálny ISO týždeň, od pondelka po nedeľu |
| `LAST_WEEK` | `LastWeek` | Last Week | Celý predchádzajúci ISO týždeň |
| `THIS_MONTH` | `ThisMonth` | This Month | Celý aktuálny mesiac |
| `LAST_MONTH` | `LastMonth` | Last Month | Celý predchádzajúci mesiac |
| `THIS_QUARTER` | `ThisQuarter` | This Quarter | Celý aktuálny štvrťrok |
| `LAST_QUARTER` | `LastQuarter` | Last Quarter | Celý predchádzajúci štvrťrok |
| `THIS_YEAR` | `ThisYear` | This Year | Celý aktuálny rok |
| `LAST_YEAR` | `LastYear` | Last Year | Celý predchádzajúci rok |
| `CUSTOM` | `Custom` | Custom | Explicitný začiatok a koniec |
| `ALL` | `All` | All | Bez filtrovania dátumu (predvolené) |

Predvolené obdobie je ALL, teda bez filtrovania dátumu, pokiaľ nezmeníte metrics.default\_range. ranges() na ktorejkoľvek metrike vráti tú istú mapu kľúč → popis. Popisy prechádzajú prekladačom Laravelu, takže výber obdobia lokalizujete v prekladových súboroch aplikácie.

Týždne sú ISO týždne — od pondelka po nedeľu — bez ohľadu na locale aplikácie, teda tie isté týždne, aké počítajú intervaly trendu WEEK. Porovnania štvrťroka a roka k dnešku nikdy nepretečú na konci mesiaca: 31. 12. je LAST\_QUARTER tretí štvrťrok a v priestupný deň sa predchádzajúce YTD končí 28. 2.

## Časové pásma

Metrika má časové pásmo reportingu — timezone() na metrike (alebo Dashboard::timezone()), inak config('metrics.timezone'), inak pásmo aplikácie. Vyhodnocujú sa v ňom obdobia (TODAY je dnešok v tomto pásme a hranice CUSTOM sa čítajú ako jeho miestny čas) a označujú sa v ňom intervaly trendov — praktické pri reportingu pre jednotlivých klientov (tenantov):

```php
$metric->timezone('America/New_York')->range(Period::Today)->toArray();
```

Časové pečiatky sa považujú za uložené v pásme aplikácie (config('app.timezone')), tak ich zapisuje Eloquent. Hranice obdobia sa pred dotazom prevedú do neho a trend pred zaradením do intervalu presunie časovú pečiatku každého riadka na čas reportingu — vrátane prechodov na letný a zimný čas v oboch pásmach — takže riadok uložený 2026-09-14 23:30 UTC sa v Europe/Bratislava ráta do 2026-09-15:

```php
config(['metrics.timezone' => 'Europe/Bratislava']);   // app timezone: UTC

Metrics::value()->count(User::query())->range('TODAY')->result()->value();
Metrics::trend()->count(User::query(), 'id')->hourly()->range('TODAY')->result()->trends();
// ['2026-09-15 00:00' => ..., '2026-09-15 01:00' => ..., ...] — local hours
```

Stĺpec typu date (bez času) nemá z čoho prepočítať pásmo; agregujte ho s pásmom reportingu ponechaným na pásme aplikácie.

## Nástroje enumov

Period a Unit sú enumy s reťazcovými hodnotami postavené na enums-for-laravel, takže ponúkajú pomocníkov pre výbery v aplikácii aj validáciu:

```php
use RoundlyConsulting\Metrics\Enums\Period;
use RoundlyConsulting\Metrics\Enums\Unit;

Period::toOptions()->all();   // ['7' => '7 Days', ..., 'ALL' => 'All'] — value => label map
Period::options();            // Collection<EnumOption> of {value, label, name} DTOs for JS/Inertia
Period::validationRule();     // 'in:7,14,30,...,ALL'
Unit::toOptions()->all();     // ['MINUTE' => 'Minute', ..., 'YEAR' => 'Year']
Unit::validationRule();       // 'in:MINUTE,HOUR,DAY,WEEK,MONTH,YEAR'
Unit::labels();               // Collection<string> of readable labels
```

Obdobie z requestu pred použitím zvalidujte — neznáma hodnota vyhodí InvalidRangeException pri vyhodnotení metriky:

```php
use RoundlyConsulting\Metrics\Enums\Period;
use RoundlyConsulting\Metrics\Facades\Metrics;

$validated = $request->validate([
    'period' => ['required', Period::validationRule()],
]);

return Metrics::get('revenue')->range($validated['period']);
```

## Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

[Ďalšie spôsoby podpory vrátane kryptomien](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/metrics-for-laravel.md)
