Autor Zpráva
PHP_Nemaster
Profil
Dobrý den,
mám takový problém s porovnáním dvou dat, která jsou v MYSQL formátu ( 0000-00-00 00:00:00 ).

Je v nich zapsáno, kdy se uživatel naposledy přihlásil a v jaký čas se přihlásil znova -> potřeboval bych zjistit dobu, jak dlouho nebyl přihlášen v sekundách ( odečtením těch dvou dat ), ale jak tak koukám, převod MYSQL formátu data do PHP formátu a pak ještě převedení na sekundy není žádná hračka...

Tohle je zatím nejvíc, kam jsem se dostal ( dotaz do DB a PHP kód ) :

$time = mysql_query( "SELECT last_time, now_time FROM time_online" );
// Výsledek: např. 2009-12-13 22:29:34

// Hlavní část kódu
$time = date( 'H:i:s' ,  strtotime( $now_time) -  strtotime( $last_time)  );


Řekl bych, že ten kód docela funguje, vypisuje  01:14:27 a rozdíl mezi daty je opravdu 1 hodina, 14 minut a 27 sekund, jenže netuším, jak toho využít a převést to celé na sekundy, asi takto:

Mám čas 2hodiny, 5 minut, 3 sekundy => 7503 sekund.
$seconds = 7503;


Poradíte někdo prosím, jak toho docílit? Opravdu si už nevím rady. :(
Předem děkuji za odpověd'
Alphard
Profil
strtotime() vrací sekundy, tak to jenom nedávejte do date()
lukame
Profil *
Musím se k tomu chvilku vrátit:
Nevíte někdo proč, toto
 date( 'H:i:s' ,  strtotime('2014-10-06 08:44:00') - strtotime('2014-10-06 07:44:00')  ); 
dává výsledek 00:02:00?
Tori
Profil
Nechte si vypsat i datum a zjistíte to. ;)
Zimní čas, použijte gmdate.
lukame
Profil *
...pardon. Výsledek 02:00:00. Prostě výsledek je posunut o jednu hodinu.


aha...tudy teda cesta nevede. Poradíte lepší možnost?
juriad
Profil
lukame:
Nemáš nějak poblázněný time zone? Tou dobou +- den se měnil na jižní polokouli (alespoň tedy v Australii) čas na letní.

OK, tak jsem úplně mimo.
Joker
Profil
lukame:
Ne zimní čas, ale časové pásmo.

Ten rozdíl dá výsledek 3600, který když ho použijete jako timestamp znamená 1. 1. 1970 01.00:00 UTC. Protože my jsme aktuálně časové pásmo UTC+1, našeho času to je 1. 1. 1970 02.00:00.

Oprava: 1. 1. 1970, samozřejmě.
lukame
Profil *
OK, už je mi to jasný. Dík.

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