Funkce Date místo strftime u helperu date

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
stpnkcrk
Generous Backer | 190
+
0
-

Zdravím!

Trochu jsem experimentoval s helperem |date a zjistil jsem, že by možná bylo lepší použít funkci Date(); místo strftime();. Používám z databáze datum ve formátu YYYY-MM-DD HH:MM:SS a funkce strftime vrací o 10 – 50 minut jiný čas, než je fyzicky uložen v databázi, kdežto Date vrací správný čas.

Co Ty na to, Davide?

Editoval skocourek (30. 12. 2008 4:36)

Jod
Člen | 701
+
0
-

A nebude to nastavením lokality?

stpnkcrk
Generous Backer | 190
+
0
-

Tak nastavením lokality bych viděl posuny o hodiny, ale posuny o minuty?

bbb_
Člen | 11
+
0
-

Mně zase nejde tohle, mám poslední verzi Nette, je to chyba u mě, nebo je to bug?

Kód v template

<?php
{="2008-12-29 10:20:30"|date:'%d.%m.%Y %H:%M:%S'}
?>

Chybová hláška

Strict Standards: strtotime() [function.strtotime]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‚Europe/Berlin‘ for ‚CET/1.0/no DST‘ instead in /home/..path../libs/Nette/Templates/Filters/TemplateHelpers.php on line 108

Díky za každou odpověď

Editoval bbb_ (30. 12. 2008 17:06)

stpnkcrk
Generous Backer | 190
+
0
-

Chtělo by to nastavit timezone, třeba v config.ini přes

set.date-timezone = "Europe/Prague"
bbb_
Člen | 11
+
0
-

dal sem to na konec php.ini (zadny „set.date-timezone“ nebo jenom „set.“ v souboru nebyl) a restartoval apache, ale furt stejna chyba..

LM
Člen | 206
+
0
-

Skoucourek myslel config.ini tvojí nette aplikace, v php.ini použij date.timezone.

bbb_
Člen | 11
+
0
-

njn, neumim cist; funguje to, diky :)

David Grudl
Nette Core | 8228
+
0
-

skocourek napsal(a):

Zdravím!

Trochu jsem experimentoval s helperem |date a zjistil jsem, že by možná bylo lepší použít funkci Date(); místo strftime();. Používám z databáze datum ve formátu YYYY-MM-DD HH:MM:SS a funkce strftime vrací o 10 – 50 minut jiný čas, než je fyzicky uložen v databázi, kdežto Date vrací správný čas.

Co Ty na to, Davide?

No, spíš by to chtělo vykoumat, proč strftime vrací špatný čas a případně nahlásit bug na PHP. Pak je možné vymyslet nějaký workaround.