Autor Zpráva
malek
Profil
ako zistim najdednoduchsie rozdiel dvoch datumov? viem to spravit len na sekundy, a potom tie sekundy rozpocitat bud na hodiny, alebo dni... Nieje jednoduchy prikaz aby to hodilo hned do formatu? 2dni 3hod 5min.. ?
PerToon
Profil
V jakým jazyce nebo skriptu? Ale myslím že je to je jedno, že to stejně všechno bude přes sekundy.
malek
Profil
v php. tak ako spravim stoho podobny format 2dni 3hod 5min.. ?
jozob
Profil
malek
Ak je to PHP, najjednoduchšie sa pracuje s tzv. time stamp. Je to celé číslo (v našich vekoch je zatiaľ 10-miestne :-)), ktoré určuje počet mikrosekúnd od roku 1970, 1:00 AM. Tento tvar dátumu sa dá získať pomocou funkcie time() - aktuálny čas. Takisto sa dá vyrobiť ľubovoľný dátum, funkciou mktime().

Príklad:
$aktualny=time(); //dnesny datum

$stary=mktime(11,32,54,11,9,2001); // 11:32:54, 9.11.2001

$rozdiel=$aktualny-$stary;

echo "Rozdiel: ".date("H",$rozdiel)." hodin,".date("i",$rozdiel)." minut a ".date("s",$rozdiel)."sekund.";


Pozn.: Dátum v obyčajnom tvare sa vypíše pomocou funkcie date(), ako prvý parameter sa uvedie tvar dátumu, ako druhý parameter sa použije náš timestamp. Viac informácii v PHP manuále.

Formátovanie dátumu
Timestamp pre aktuálny čas
Timestamp pre ľubovoľný čas
malek
Profil
diky, vyskusam, tie operacie s casom som si uz pozeral len ten odpocet som nevedel. dosiel som po odpocet datumu,

echo "Rozdiel: ".date("H",$rozdiel)." hodin,".date("i",$rozdiel)." minut a ".date("s",$rozdiel)."sekund.";

toto som nevedel ze sa da, dik
jozob
Profil
malek
Jednoducho si to prevedieš pomocou tých funkcií na mikrosekundy, potom to odčítaš a nakoniec z toho vyrobíš normálny tvar, opäť pomocou funkcie.
PerToon
Profil
Jen upravím jozoba - s největší pravděpodobností myslí milisekundy.
jozob
Profil
PerToon
Nakoniec to nie sú ani mikrosekundy ani milisekundy, ale sekundy :-)

Veď si to prepočítaj: 36 rokov = 13140 dní = 315360 hodín = 18921600 minút = 1135296000 sekúnd... A ďalej už nemusíme ísť, pretože sme dospeli k desať-miestnému číslu, čo je dnes UNIXový formát času :-)
jozob
Profil
Tak... a mám to aj overené na php.net.
"Returns the current time measured in the number of seconds since the Unix Epoch"
malek
Profil
to mi pise ze Call to undefined function: 1005301974()

asi preklep v $rozdiel=$aktualny-$stary();
malo byt $rozdiel=$aktualny-$stary;

inak to funguje, a toto nejde:

$cas_zdb = 1143661998;
$aktualny=time(); //dnesny datum
$co2=date('H,j,s,d,n,Y', $cas_zdb);
echo $co2;
$stary=mktime($co2); // 11:32:54, 9.11.2001

$rozdiel=$aktualny-$stary;
echo "Rozdiel: ".date("H",$rozdiel)." hodin,".date("i",$rozdiel)." minut a ".date("s",$rozdiel)."sekund.";

Warning: date(): Windows does not support dates prior to midnight (00:00:00), January 1, 1970 in
jozob
Profil
malek
" asi preklep v $rozdiel=$aktualny-$stary();"
Samozrejme, už po sebe nečítam :-)
jozob
Profil
malek
A čo sa týka tej chyby, je to problém Windowsov... skúsim mrknúť niečo o tom na nete...
malek
Profil
takze keby som mal server linux tak to ide?
jozob
Profil
malek
No nenašiel som nič konkrétne (zatiaľ). Ak sa mi podarí zistiť o tom viac, napíšem.

Ale tú chybu som v živote nevidel, aj keď som cca 4 roky používal Windows.
jozob
Profil
malek
"takze keby som mal server linux tak to ide?"
Určite. Tam podobné chyby nenájdeš.
malek
Profil
hm to dava aj cudne rozdiely, tam bude chyba inde, v tom formate asi, lebo dava to cudne rozdieli, skus zmenit len rok na 2005 a uz to nejde
Anonymní
Profil *
mam dva datumy v MS SQL. jak na ASP zjistim rozdil mezi nimi ve dnech?
Toto téma je uzamčeno. Odpověď nelze zaslat.

0