Skripta za računanje vremena

Pozdrav!

Dali mi neko može reći kako da napravim skriptu koja će računati koliko je prošlo sekundi, minuta, sati, dana, godina od kad je korisnik registrovan na sajt?

Ili dali neko zna gdje se može skinuti free skripta?

Hvala!

U bazu upišeš datum registriranja u sekundama ( time() ), i kad ispisuješ, vratiš:

[php]$vrijeme = time() - $datum_registriranja;[/php]

S time dobiješ sekunde, i radiš što god želiš.

[php]$minute = $vrijeme / 60; // 1min ima 60s
$sati = $vrijeme / 3600; // 1h ima 3600s
$dana = $vrijeme / 86400; // 1 dan ima 86 400s
$godina = $vrijeme / 31536000 // 1 god ima 31 536 000s

// etc etc[/php]

[quote=“jojo”]U bazu upišeš datum registriranja u sekundama ( time() ), i kad ispisuješ, vratiš:

[php]$vrijeme = time() - $datum_registriranja;[/php]

S time dobiješ sekunde, i radiš što god želiš.

[php]$minute = $vrijeme / 60; // 1min ima 60s
$sati = $vrijeme / 3600; // 1h ima 3600s
$dana = $vrijeme / 86400; // 1 dan ima 86 400s
$godina = $vrijeme / 31536000 // 1 god ima 31 536 000s

// etc etc[/php][/quote]

u bazu pri registraciji spremam datum vako

date('Y-m-d H:i:s')

dali se može kako od ovog vremena napraviti skripta pa da računa?

Kad je korisnik danas registovan da ispisuje prvo sekunde pa minute pa sate, pa onda dane itd

[quote=“susok”]u bazu pri registraciji spremam datum vako

date('Y-m-d H:i:s')

dali se može kako od ovog vremena napraviti skripta pa da računa?

Kad je korisnik danas registovan da ispisuje prvo sekunde pa minute pa sate, pa onda dane itd[/quote]

Promjeni to u sekunde, praktičnije je. Za ovaj slučaj ne znam rješenje.

@jojo, ne pričaj gluposti :slight_smile: SQL je moćna stvar.

@susok
Ako imaš datum spremljen u atribut tipa datetime, a ako nemaš - već si napravio pogrešku, tada samo oduzmi 2 datuma.

SELECT DATEDIFF(NOW(), datum_registracije) AS razlika FROM imetablice WHERE user_id = ‘X’

Ovo će ti vratiti koliko dana je prošlo od registracije usera do vremena kada se upit izvede.

EDIT:
Sorry, previdio sam da tražiš sekunde, u tom slučaju za sekunde koristi TIMEDIFF funkciju, a njen rezultat provuci kroz TIME_TO_SEC funkciju.

Svakako prouči dokumentaciju mysql-a

Poanta je: zašto ne ovakve stvari napraviti već u sql-u?

[quote=“susok”]u bazu pri registraciji spremam datum vako

date('Y-m-d H:i:s')

dali se može kako od ovog vremena napraviti skripta pa da računa?

Kad je korisnik danas registovan da ispisuje prvo sekunde pa minute pa sate, pa onda dane itd[/quote]

Jednostavno

i onda nastavi sam dalje kako ti je jojo rekao.
Sad sam vidio što je junior napisao i svakako je nolja solucija. Treba je se samo sjetiti. :slight_smile:

Ja sam probo vako al neradi

Može li mi neko malo bolje objasniti?

Hvala!

[quote=“susok”]Ja sam probo vako al neradi

Može li mi neko malo bolje objasniti?

Hvala![/quote]

Šta izbaci, šta kaže, kako mu je :slight_smile: , jel se dogodi išta? daj malo detalja.

evo ovo mi izbaci

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '2011-01-30 23:03:00 FROM korisnici WHERE id_korisnika='1'' at line 1

[quote=“susok”]evo ovo mi izbaci

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '2011-01-30 23:03:00 FROM korisnici WHERE id_korisnika='1'' at line 1

[/quote]

Ma nisam prvi put dobro ni pogledao query koji šalješ. Ne možeš slati php varijablu ovom upitu na tom jestu gdje je koristiš.

Taj $v koji ti želiš ti je novi naziv kolone. Tako da bi ti upit trebao glasiti otprilike ovako:

Probaj sad.

  1. Varijabla $v je nepotrebna, a da ne govorim da si ju pokušao iskoristiti ko alias :slight_smile:
  2. Ovo će ti vratiti razliku u danima.

Ja to radim ovako:

$dan = $datum %100;
$mj_tmp = (($datum - $dan) / 100);
$god = ($mj_tmp - ($mj = $mj_tmp % 100)) / 100;
$d = sprintf("%02d.%02d.%04d", $dan, $mj, $god);
return $d;

Radi već dosta dugo.