Autor Zpráva
Quicky
Profil
Zdravím

Chtěl bych odečíst jednu hodinu ve výpisu z databáze. V databázi jsou uložené data např. čas vytvoření záznamu,ale je zde uložen čas na serveru. Jelikož je to na hostingu nemohu čas změnit. Tak jsem se uchýlil k tomu že změním pouze výpis z databáze. Prohledal jsem návody a weby ale nenašel jsem nic co by mi pomohlo.

while ($radek = mysql_fetch_array($vysledek, MYSQL_ASSOC))
{
$created = date("d.m. Y H:i:s", strtotime($radek["created"]));  

echo ('
<table>  
<tr>
  <td class="velke">'.$created.'</td> 
');
 ?>

Tento kod my spravně vypisuje do každého řadku čas uložený v databázi. Není možné v kódu prostě jen odečíst jednu hodinu?
Keeehi
Profil
Quicky:
Nepomohlo by správně nastavit časovou zónu?
php.net/manual/en/function.date-default-timezone-set.php
Případně to jde taky nastavovat v databázi.
anonymníí
Profil *
Quicky:
Není možné v kódu prostě jen odečíst jednu hodinu?
Je. Používáš funkci strtotime, doporučuji její bližší prozkoumání.
Quicky
Profil
Keeehi:
Nepomohlo, data už jsou uložena v databázi, pracuji pouze s výpisem.
anonymníí:
To jsem zkoumal, a měla by fungovat,ale jelikož už ji tam používám tak nevím jak tam "nacpat" druhou funkci strtotime
anonymníí
Profil *
Quicky:
Sice nevím co, jak a kde jsi zkoumal, ale druhou funkci strtotime tam opravdu nepotřebuješ. PHP manuál jsi neviděl, že?

Rozklikni si odkaz, který se udělal z názvu funkce strtotime ve tvém prvním příspěvku, podívej se, jaké a kolik parametrů má tahle funkce a jak se s ní vlastně pracuje.
Quicky
Profil
anonymníí:
PHP manual jsem četl,ale nikde jsem neviděl že by použili dva parametry. Nejsem profesional, vidím tam mnoho způsobů použití,ale nic co by mi pomohlo.
anonymníí
Profil *
Quicky:
Podívej se na tenhle příklad, php.net/manual/en/function.strtotime.php#111989, měl by ti pomoci pochopit, jak se dá s tou funkcí také pracovat. Upozorňuje sice na nějakou nepřesnost, ale princip užití je tam správný a s jednou hodinou žádný problém nebude nastávat.
Quicky
Profil
anonymníí:
Ano tenhle jsem také četl a zkoušel,ale nesplnilo to účel. Je taky možné a jisté že dělám někde chybu. Nemůžeš mi to trochu více nastřelit?
Martin2
Profil *
Quicky:
Počítat časové zóny ručně je cesta do pekel na plný plyn. Zaděláš si na neuvěřitelnou spoustu potíží.

Používej objekt DateTime a metodu DateTime::setTimeZone, která pracuje s objektem DateTimeZone. Jakýkoliv jiný postup je špatný.
Quicky
Profil
Martin2:
Děkuji,ale já momentálně pracuji pouze s výpisem, takže časové zony, nic z toho já neovlivním. Stačí my pouze do té funkce vložit +1 k hodině. To je celé. Nemůžu na to přijít.
anonymníí
Profil *
Quicky:
Ano tenhle jsem také četl a zkoušel,ale nesplnilo to účel.
Jak jsi to zkoušel implementovat u sebe? Použití je snadné, někde děláš chybu. Dokud neukážeš, jak s tím zkoušíš pracovat, těžko ji najdeme.

Martin2:
Souhlasím s tím, že u větších projektů je lepší pracovat s datem tak, jak uvádíš. U malého projektu, tím spíše v začátcích, kde Quicky je, se dá čas posunout i "ručně", moc velký problém bych v tom neviděl. Jsou weby, kde se případný posun skrze změnu času vůbec nemusí projevit, nebo tento projev nebude nikomu vadit.
Quicky
Profil
anonymníí, Martin2:

Je tu zmíněná funkce strtotime, koukal jsem na manual,a zněho tak nějak chápu jak to použít v "normálně" dle syntaxe. Ale jak to připojit do mého kodu který už tuto funkci obsahuje. Nejsem v tomhle zběhlí, a at to vkládám kamkoliv,nemá to požadovaný účinek. Podle mě to vyšší level...
Martin2
Profil *
Quicky:
Děkuji,ale já momentálně pracuji pouze s výpisem, takže časové zony, nic z toho já neovlivním.
A co bude tvůj skript dělat poslední březnovou neděli, přibližně ve dvě v noci? Začne sám od sebe přidávat k novějším datům místo jedničky dvojku?

anonymníí:
Souhlasím s tím, že u větších projektů je lepší pracovat s datem tak, jak uvádíš.
Pokud je ten skript větší než dva řádky, tak je už dost velký na to, aby pracoval s časem správně.
anonymníí
Profil *
Quicky:
a at to vkládám kamkoliv,nemá to požadovaný účinek.
Tak ukaž, kam jsi ten den zkoušel vkládat.

Podle mě to vyšší level...
Použití jedné funkce na základě ukázky řešící totéž? Pokud ano, třeba jen na programování nemáš vlohy a bude to chtít najít si jiného koníčka :-) Ukaž a uvidíme.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: