---
title: "Časové pásma a DST — Opening Hours for Laravel | Roundly"
description: "Ako sa určuje časové pásmo kalendára, ako vrátiť odpovede v ľubovoľnom pásme a jedno explicitné pravidlo pre zmenu času."
url: https://roundly-consulting.com/sk/open-source/navody/opening-hours-for-laravel/casove-pasma-a-dst
language: sk
---

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

[Opening Hours for Laravel](https://roundly-consulting.com/sk/open-source/navody/opening-hours-for-laravel.md)

# Časové pásma a DST

Kalendár sa vyhodnocuje vo vlastnom časovom pásme → v openingHoursTimezone() vlastníka → v opening-hours.timezone → v app.timezone. Akceptujú sa len názvy IANA; pevné posuny ako +02:00 sa odmietnu výnimkou InvalidTimezoneException. withOutputTimezone() mení len to, ako sa okamihy zobrazia, nikdy nie samotnú odpoveď:

```php
$hours = OpeningHours::for($clinic);   // or $clinic->openingHours()

$hours->timezone();                                // the zone the calendar is evaluated in
$hours->withOutputTimezone('UTC')->nextClose();    // same instant, reported in UTC

$visitor = $hours->withOutputTimezone('America/New_York');
$visitor->nextOpen();                              // reported in New York time
$visitor->outputTimezone();                        // DateTimeZone('America/New_York')
```

## Pravidlo hraníc

Každá hranica v miestnom čase sa riadi jedným pravidlom: zodpovedá prvému okamihu, v ktorom miestne hodiny ukazujú daný čas alebo neskorší.

- Posun dopredu (02:30 neexistuje): hranica 02:30 je okamih, keď hodiny skočia (03:00). Rozsah 01:00-02:30 v ten deň trvá jednu skutočnú hodinu.
- Posun dozadu (02:30 nastane dvakrát): platí prvý výskyt — pre začiatky aj konce, v každom pásme.
- Deň 00:00-24:00 trvá pri zmene času 23 alebo 25 hodín; trvanie je skutočný čas.
- Dátumy zadané ako okamihy sa najprv prevedú do pásma kalendára; deň v týždni je miestny.

```php
use Carbon\CarbonImmutable;
use RoundlyConsulting\OpeningHours\OpeningHours;

// Europe/Bratislava falls back on Sunday 2026-10-25 (03:00 → 02:00)
$sundays = OpeningHours::make(['week' => ['sunday' => ['00:00-24:00']]], 'Europe/Bratislava');
$sunday = CarbonImmutable::parse('2026-10-25 00:00', 'Europe/Bratislava');
$sundays->openSecondsBetween($sunday, $sunday->addDay());   // 90000 — 25 real hours

// … and springs forward on Sunday 2026-03-29 (02:00 → 03:00)
$gap = OpeningHours::make(['week' => ['sunday' => ['01:00-02:30']]], 'Europe/Bratislava');
$period = $gap->currentPeriod(CarbonImmutable::parse('2026-03-29 01:30', 'Europe/Bratislava'));
$period?->end->format('c');                                 // 2026-03-29T03:00:00+02:00 — one real hour
```

Samotné PHP vyhodnocuje nejednoznačné časy v rôznych pásmach rôzne, preto engine počíta hranice z tabuľky prechodov každého pásma. Je overený nezávislým brute-force orákulom na skutočných prechodoch — vrátane 30-minútového posunu (Australia/Lord\_Howe), posunu +05:45 (Asia/Kathmandu), prechodu o polnoci (America/Santiago) a vynechaného dňa (Pacific/Apia).

## 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/opening-hours-for-laravel.md)
