iReklama  |  PC Svět  |  vyhledávací centrála  |  Diskuzní fórum  |  WWW katalog  |  Guestbook  |  MailForm  |  kontakt: pcsvet@pcsvet.cz - čte si nás 16 čtenářů
 
PC Svět
Hlavní stránka
ASP
Aktuality
Assembler
C,C++
Delphi
Diskuze
Grafika
Hacking
Hardware
Hry a zábava
HTML
Internet
JavaScript
Komunikace
Literatura
Linux
Microsoft Office
Turbo Pascal
Perl
PHP
Software
Tiskové zprávy
Visual Basic
Windows
WWW katalog

Knihovna zdr. kódů

Nabídka skriptů aj.

Homepage autora
Služby
Guestbook
  kniha návštěv pro
  každého
MailForm
  zasílání výsledků
  formulářů na e-mail
Programy
DOS Commander
WinMan
Windows Tools
Informace
O PC Světě
Přehled rubrik
Reklama
Výsledky anket
Přehled novinek


ISSN 1213-6042

šéfredaktor
Petr Šťastný
admin@pcsvet.cz

zástupce šéfredaktora
Pavel Rauš
raus@pcsvet.cz

Stránka je optimalizo-
vána pro prohlížeč
Internet Explorer 5.0
při rozlišení 800x600

 © Petr Šťastný 2002
   All rights reserved

PC Svět
ikonka PC Světa



Linux - zdarma a legálně



TOPlist

Vytisknout   Poslat   Komentáře (1)   Přidat komentář

PHP: Funkce pro práci s datem a časem

Vyčerpávající přehled funkcí pro práci s datumem a časem s příklady

Články o tom, jak si nechat v PHP zobrazit dnešní datum s příslušným svátkem, se to na českém internetu jenom hemží, ale možnosti funkcí jsou daleko větší! V PHP máme k dispozici 13 funkcí, které přímo pracují s datem nebo časem. Většinu funkcí stejně nikdy nevyužijete, ale kdyby...

Nyní bych se pokusil srozumitelně probrat nejdůležitější funkce a ke každé uvést nějaký ten příklad, který by se mohl v praxi hodit.OK? Jdeme na to!

fce Time();

Udává počet sekund od 1. ledna 1970. Tato zdánlivě nesmyslná vlastnost je ale velkou výhodou. Představte si, že potřebujete vědět zítřejší datum. Kdyby jste měli k číslu dne přičítat jedničku, narazili byste na problém vždy na konci měsíce, protože každý měsíc má, jak jistě víte, jiný počet dní. S touto funkcí však můžete věc rychle a snad vyřešit. Zkrátka k výsledku funkce přičtete 86400, což se počet sekund za jeden den a máte vystaráno!

fce Date(, int <čas> );

Slouží k formátování časových údajů. Datum a čas se formátují podle řetězce, ve kterém je zadáno, jak se má datum a čas zobrazit. V následující tabulce můžete vidět všechny znaky použitelné v onom magickém formátovacím řetězci.

Znak

Význam

Y

Zobrazí čtyřčíselné zobrazení roku (např. 1990)

y

Zobrazí dvoučíselné zobrazení roku (např. 90)

M

Zkratka měsíce (anglicky) (např. Aug)

m

Číslo měsíce (01-12)

F

Jméno měsíce (anglicky) (např. August)

D

Zkratka dne v týdnu (anglicky) (např. Sat)

l

Jméno dne v týdnu (anglicky) (např. Saturday)

w

Číslo dne v týdnu (1-7)

d

Číslo dne v měsíci (01- 31)

j

Číslo dne v měsíci (1-31)

z

Číslo dne v roce (001-365)

H

Hodina (00-23)

h

Hodina (00-12)

i

Minuta (00-59)

s

Sekunda (00-59)

A

Dopoledne/odpoledne (AM/PM)

a

Dopoledne/odpoledne (am/pm)

L

Je přestupný rok? (1 – Ano, 0 – Ne)

A ještě něco, pokud nepoužijete parametr čas, funkce si sama doplní jeho hodnotu z funkce Time(). Je to docela výhoda, protože pokud chcete vypsat aktuální datum nebo čas, což budete dělat asi nejčastěji, nemusíte parametr vůbec zadávat.

Nyní si uvedeme jeden příklad na použití obou funkcí.

<?
// Příklad na využití funkce Date a Time

Echo "Dnes je: ".Date("j.m. Y")."
";
Echo "Včera bylo: ".Date ("j.m. Y",time()-86400)."
";
Echo "Právě je: ".Date ("H:i:s ")."
";
Echo "Před hodinou bylo: ".Date ("H:i:s",Time()-3600)."
";
?>

Pro lepší přehled o časových údajů jsem za vás vynásobil pár sekund:

Jednotka Počet sekund
hodina 3600
den 86400
rok 31536000
přestupný rok 31622400

fce mktime (int , int , int , int , int , int );

Tato funkce naopak vrací počet sekund od 1.1. 1970 dle zadaných parametrů. Zajímavé je, že tato funkce automaticky přepočítává chyby v parametrech. Pokud např. uvedete 13. měsíc, tak ho funkce určí jako leden dalšího roku.

Nyní si uvedeme jeden příklad, který bude obsahovat všechny zatím zveřejněné funkce. Tento jednoduchý skriptík se vám určitě bude hodit, pokud máte své vlastní stránky s informacemi o sobě. Abyste nemuseli každý rok měnit svůj aktuální věk, tento skript ho vypočítá i přesností na sekundu, ale musíte vědět přesně na sekundu, kdy jste se narodili. Tak tady je:

<?
// Skript pro výpočet aktuálního věku s libolnou přesností
$hod= 13; //zadejte hodinu vašeho narození
$min= 30; //zadejte minutu vašeho narození
$sek= 15; //zadejte sekundu vašeho narození
$mes= 9; //zadejte měsíc vašeho narození
$den= 4; //zadejte den vašeho narození
$rok= 1985; //zadejte rok vašeho narození

$vek =strVal((Time()-mktime($hod,$min,$sek,$mes,$den,$rok))/31536000);

Echo Substr($vek,0,5)." let";
// Zobrazí váš aktuální věk s přesností na dvě desetinná místa.
?>

fce getdate (int );

Tato funkce vrací asociativní pole, ve kterém jsou uloženy jednotlivé položky času. Je to jednoduchý způsob, jak "rozebrat" časový údaj na díly, se kterými potřebujeme pracovat.

Indexy asociativního pole a jejich výsledky uvádí následující tabulka:

Index Výsledek
seconds sekundy
minutes minuty
hours hodiny
mday číslo dne měsíci
wday číslo dne v týdnu
mon měsíc
year rok
yday číslo dne v roce
weekday anglické jméno dne v týdnu
month anglické jméno měsíce

<?
$cas = getdate();

if ($cas["hours"]==12) Echo "Dobré poledne!";
else
echo "Není poledne, takže není k čemu přát. Škoda.";
?>

fce checkdate (int <mesic>, int <den>, int <rok>);

fce vrací hodnotu true, pokud parametry splnily všechny požadavky. Tj. rok byl zadán od 1 do 32767, měsic od 1 do 12 a den podle měsíce. Je to užitečné hlavně pokud chceme, aby uživatel nemohl zadat třeba 31.2. 2002 . Tuto fci by mělo podporovat PHP 4.0.0 nebo vyšší.

 

Tak to by bylo z mé strany asi tak vše. Doufám, že vám byl tento článek nějak prospěšný, a že získané vědomosti nějak upotřebíte.

Další informace: http://www.php.cz/manual/cs/ref.datetime.php

Autor: Tomáš Pastorek, topas@centrum.cz, informace a seznam článků


Komentáře k článku
why?, anonym, 17.2.2002 10:33:50

Přidat komentář


Poslední články ze stejné rubriky
PHP: Nastavení přístupových práv u souborů
Funkce Rand() a array_rand()
Programování PHP stránek (4.)
Programování PHP stránek (3.)
Programovní PHP stránek (2.)

Diskuze - PHP - celkem 435 příspěvků (zobrazeno max. 15) - zobrazit celou diskuzi
Podkategorie
Databáze [65]
Název Autor Datum
pomoc náhodná čísla Lukasik 16.02.2002
• Re: nahodna cisla bonde 16.02.2002
• Nefunguje Lukasik 17.02.2002
PHP na IIS Lis 16.02.2002
• Re: PHP a IIS bonde 16.02.2002
• PHP na IIS Lis 17.02.2002
• Re: php.ini bonde 17.02.2002
Příznaky zpráv IMAP Unlimited 14.02.2002
   žádná odpověď    
sachy radek 12.02.2002
   žádná odpověď    
nezobrazovani vysledku formulare petr Kubes 11.02.2002
• Re: formular Bonde 12.02.2002
Problém s mejlem Lukáš Pulda 09.02.2002
   žádná odpověď    
pripojeni k "localhost" v lokalni siti Milan 06.02.2002
• kazdy je localhost sam pro sebe :-) Alex 07.02.2002
PostgreSQL Koudis 05.02.2002
   žádná odpověď    
Provozovatel:
PES.cz
Příbuzné články
•  PHP: Zástupné znaky v časových funkcích
Poslední články
Často kladené dotazy – vypalování CD (2.)
SWtip: Cool Edit Pro
Adaptér pro připojení externí antény k telefonu Alcatel 30x
SWTip: Tweak UI
Knihovny a komponenty zdarma
Hodnocení článku
nejlepší <----> nejhorší
    
Stav: 5
Počet: 1
Informace o článku
Datum 15.2.2002
Čtenářů 218
Autor Tomáš Pastorek
Rubrika PHP - reference
Nový redaktor
  Chcete psát články
  pro PC Svět či se
  stát redaktorem?

Články honorovány!

  Informace zde
EInfo
  Chcete být informováni
  o každém novém článku
  na PC Světě?

Zadejte svůj e-mail:

MSN.ATLAS.CZ
Hladat.sk

hlavní stránka  |  vyhledávací centrála  |  Diskuze  |  WWW katalog  |  Guestbook  |  MailForm  |  kontakt: pcsvet@pcsvet.cz

Se svými dotazy či problémy se obracejte na diskuzní fórum, věci týkající se PC Světa směřujte na e-mail pcsvet@pcsvet.cz

Šíření obsahu tohoto serveru nebo jeho části je bez souhlasu redakce zakázáno.
(c) PC Svět 2002 - Všechna práva vyhrazena.