Autor Zpráva
iz987
Profil *
Zdravím..

Potřebuju malinkou radu...
Mám v DB sloupce daum a čas a potřeboval bych z dvou časů ve stejný den udělat
rozdíl..

příklad 16:30 - 8:20

Potřebova bych vědět uplynulou dobu mezi těmito časy...

Napadlo mě udělat u obou času mkdir() a tyto časy v unixovém tvaru odečíst..ale
nevím jak poté to číslo dostat zpět na časový výsledek.. (v tomto případě 8:10)

Moc se omlouvám, pokud to tu někdo řešil.. Nepodařilo se mi nic moc
vygooglovat...
iz987
Profil *
Samozřejme už píšu hovadiny nemyslel jsem mkdir, ale mktime()
DJ Miky
Profil
mkdir? To je na vytvoření adresáře…

Pokud je to ve stejný den, tak to stačí převést na minuty (rozdělit třeba pomocí explode nebo substr a $v_minutach=$hodiny*60+$minuty) a jednoduše to od sebe odečíst. Dostaneš rozdíl v minutách, to pak můžeš opět převést na hodiny ($hodiny=floor($rozdil/60); $minuty=$rozdil%60).
iz987
Profil *
Díky moc takhle mě te nějak už nenapadlo..Samozřejmě že vím na co je mkdir, jen už mám asi trošku přetaženo...
Ale opravdu moc díky.. .


Ale i tak by mě zajímalo zda by to šlo řešit i jinak třeba tou původní cestou kterou jsem chtěl jít...
DJ Miky
Profil
Určitě by to tak šlo řešit, jen je podle mě zbytečné převádět to až na sekundy, na minuty to stačí. V principu je to ale to samé.
Kajman_
Profil *
http://dev.mysql.com/doc/refman/4.1/en/date-and-time-functions.html#fu nction_timediff
iz987
Profil *
Tuto variantu mi už také nějaký hodný člověk posílal na jiném foru, ale nevím jak dalece je pro mě využitelná.. za prvé DB je postgre.
Data co mám v DB nejprvr musím překontolovat...
Jedná se o docházku, tudíž tam je trošku problémek v tom že nemůžu odečíta co chi jak chci...

Příchod
přestávka
příchod (z přestávky)
služební cesta
příchod
odchod


Může tam být lékař, dovolná, jiný důvod, průchod atd..Tudíž tohle musím ještě předem kontrolovat......
Takže pokud nebude správná posloupnost (uživatel udělá nějaký zmatek špatně odpípne a mě to pak bude vyhazovat špatné časy.. )

To řešení od DJ Miky je pro mne patrně nejsnadnější a nejjednodušší.
Ale jinak díky za radu;-)
domixx
Profil
...a musí se to převádět? Bych to taky rozděli a pak jen 16-8 a 30-20 = 8:10, ale pak se to zas musí spojit no...
a nebo to time si myslím by taky šlo: (převezmu něco od DJ ;-) )


$t1 = mktime(); //čas1 v s
$t2 = mktime(); //čas2 v s

$rozdil_minuty = ($t2-$t1)/60;
echo $hodiny=floor($rozdil_minuty/60);
echo ':';
echo $minuty=$rozdil_minuty%60;



když je rozdíl zápornej je chyba...
Kajman_
Profil *
A nestačí pgsql ty datumy odečíst a vynásobit třeba 24*60 pro minuty. A kontrolu bych osobně dal do sql :-)

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:

0