Občas se při provozování webu můžete dostat do situace, že potřebujete pracovat s přesnými časovými údaji. Osobně jsem se s touto potřebou setkal při provozování eshopu s módními doplňky – čas objednávky je zaznamenáván a dále se s ním pracuje pro potřeby fakturace. Vzhledem k tomu, že hostuji weby u Hostgator.com, který má serverovny umístěny v Texasu, odpovídá i nastavení časového pásma místnímu, tedy americkému času.
| date/time support |
enabled |
| „Olson“ Timezone Database Version |
2008.9 |
| Timezone Database |
internal |
| Default timezone |
America/Chicago |
Občas se mi tak stávalo, že docházelo k nepřesnostem v datu objednávky vzhledem k časovému posunu. Proto jsem pátral po možnostech, jak v PHP nastavit správné časové pásmo pro server umístěný v Americe. Samozřejmě – nejjednodušší by bylo, přesunout si své weby na server do ČR. To by ale nebyla ta správná výzva :)
Nastavení výchozího časového pásma (default timezone) v PHP – řešení
V PHP lze výchozí časové pásmo serveru nastavit několika způsoby:
- přímým zápisem do php skriptu
- úpravou direktivy v php.ini
- za pomoci souboru .htaccess
Ve všech použitých případech je nutno využít validní konstantu pro výchozí časové pásmo – Českou republiku, což je řetězec Europe/Prague! Seznam dalších použitelných konstant pro nastavení default timezone naleznete na stránkách projektu PHP.
Nastavení default timezone přímo v PHP skriptu
Většinou se tímto způsobem zapíše nastavení do konfiguračního souboru PHP aplikace. Zápis pak vypadá nějak takto:
<?php
date_default_timezone_set(‘Europe/Prague’);
?>
Nastavení default timezone pomocí direktivy PHP.INI
V souboru PHH.INI, který je hlavním konfiguračním souborem PHP, je možno nastavit výcozí časové pásmo serveru za pomocí změny direktivy date.timezone. Do php.ini souboru tak stačí dopsat následující řádek:
date.timezone Europe/Prague
Nastavení default timezone pomocí souboru .htaccess
Nemáte-li možnost úpravy souboru php.ini, případně nemůžete-li jednoduše nastavit ve vlastních skriptech výchozí časové pásmo, postačí drobná úprava souboru .htaccess. Samozřejmě je nutné, aby poskytovatel hostingu editaci souboru .htaccess podporoval, což v současné době drtivá většina umožňuje.
Pro nastavení pak stačí do .htaccess vložit následující řádek:
SetEnv TZ Europe/Prague