Autor Zpráva
spacek145
Profil
Dobrý den, mám dvě proměnné s datumem a časem a potřeboval bych je od sebe odečíst, jak na to?

//čas posledního přihlášení
$last_t = mysql_result(mysql_query("SELECT value FROM stats WHERE stat='lastlogin' AND category='stats' AND player='".$nick."'"), 0);
$last = "".date('d.m.Y, H:i', $last_t)."";

//aktuální čas
$now = "".date('d.m.Y, H:i', Time())."";

Echo $now - $last; //tohle mi nefunguje, nejspíš to bude nějak jinak...

****Potřebuji od sebe odečíst $now - $last
Tori
Profil
spacek145:
V jakém formátu to máte uložené v DB?
spacek145
Profil
čas ve formatu stringu -> př. 1362509729
Someone
Profil
spacek145:
Na řádku 8 už od sebe odčítáš dva stringy. Nejdříve je odečti a pak přes funkci Date přeformátuj do požadované podoby:

$last_t = mysql_result(/*sql query*/,0);
echo Date("d.m.Y H:i",Time()-$last_t);
edit: opraveno viz. [#6]
spacek145
Profil
$last_t = mysql_result("SELECT value FROM stats WHERE stat='lastlogin' AND category='stats' AND player='".$nick."'");
$last = "".date('d.m.Y, H:i', $last_t)."";
echo Date("d.m.Y H:i",Time() - $last);

Když to mám takhle.. tak my to vypisuje pouze aktuální čas, ale nic to neodečítá... Co tam mám blbě?
Someone
Profil
spacek145:
Asi jsem si to v té [#4] neměl zkracovat:
$last_t = mysql_result(mysql_query(/*sql dotaz*/),0);
To získávání z db máš samozřejmě správně, já jsem si to chtěl pouze zkrátit. A tak jsem místo mysql_query(...) napsal /* sql dotaz */, hádám, že tě to zmátlo, moje chyba.
spacek145
Profil
zkusím to


$last_t = mysql_result(mysql_query("SELECT value FROM stats WHERE stat='lastlogin' AND category='stats' AND player='".$nick."'"), 0);
$last = "".date('d.m.Y, H:i', $last_t)."";
//čas posledního přihlášení
Echo Date("d.m.Y, H:i",Time()-$last);

Tak furt to nejde... proč :)
Zas to ukazuje jen aktualni cas

Vysledek tohoto je: 10.03.2013, 21:48
Someone
Profil
spacek145:
proč
protože
Someone:
od sebe odčítáš dva stringy

$last = "".date('d.m.Y, H:i', $last_t).""; tam nemá co dělat a máš odečíst to co vytáhneš z db od Time()
DJ Miky
Profil
Pořád odečítáš řetězec. Druhý řádek úplně vyhoď a odečítej time() - $last_t (číslo mínus číslo, teprve potom naformátovat do potřebného tvaru).
spacek145
Profil
$last_t = mysql_result(mysql_query("SELECT value FROM stats WHERE stat='lastlogin' AND category='stats' AND player='".$nick."'"), 0);
//čas posledního přihlášení
$naformatovat = time() - $last_t;
$lajn = date('d.m.Y, H:i', $naformatovat);
Echo $lajn;

Teď to správně odečítám, ale nejde mi zase pro změnu převod:
Převedený je to: 01.01.1970, 01:19

OMG :(
Someone
Profil
spacek145:
Co očekáváš za výsledek? Pokud proběhlo poslední přihlášení před 1 hodinou a 19 minutama, tak to vypisuje správný výsledek.

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: