Jump to content
php.lv forumi

Noteikt vai lietotājs ir ielogojies pēdējo 24h laikā .. ?


NoSound

Recommended Posts

Tātad ..

Ir nepieciešamība pārbaudīt vai lietotājs ir ielogojies savā profilā pēdējo 24h laikā !

Piemēram - lietotājs veiksmīgi autorizējās aizvakar, un šodien ieejot viņs saņem ziņu par to ka nav bijis aktīvs 2 dienas ..

Kā to panākt ? Izmeklējos pa māti googli, bet nekādu rezultātu.

 

Paldies jau iepriekš :)

Link to comment
Share on other sites

glabā last_login laukā unix_timestamp() un tad salīdzini vai tas atšķirās par 86400 no pašreizējā unix_timestamp();
Kļūda! Šajā gadījumā tiks uzrādīts arī tad, ja lietotājs būs ielogojies nākamo 24 stundu laikā!
Link to comment
Share on other sites

Vispār jau ne, to last_login jau pieglabā kad ir last action, bet salīdzina ar current timestamp.

apmēram tas pats, kas ierakstot NOW() iekš last_login ņemam SELECT kautkas FROM table WHERE last_login>NOW() - 1 DAYS.

Varbūt nekorekti, bet man tā liekas, neesmu mēģinājis.

Ja tiek likts akcents uz dienām/datumiem, iepējams ir ka nesanāk normāli, bet tad arī jāpārbauda ir datums, ne laiks kā unix_timestamp

Edited by mounkuls
Link to comment
Share on other sites

Nu ar to laiku man viss sanāca, bet - cik tagad nospriedu .. vajag pārbaudīt arī datumu, jo man vajag zināt cik katrs cilvēks ir bijis neaktīvs !

Lai viņs ieejot savā profilā pēc 3 dienu pārtraukuma, redzētu to Neaktīvs statusu ..

Link to comment
Share on other sites

Pentiums: izlasi tak visu topiku, nevis tikai vienu postu. Viņš jau saprata, kur ir problēma.

NoSound: codez tev jau pateica ka to darīt. Selektējot datus no tabulas salīdzini patreizējo laiku ar to laiku, kurš pieseivots pie pēdējās ielogošanās reizes.

Link to comment
Share on other sites

bubu : un kas notiks ja salīdzināšu šos 2 laikus ar 3 dienu atstarpi ? Rezultāts - 3 dienas tiek pazaudētas kā nebijušas, jo fiksēts tiek tikai laiks nevis datums ! Un par datumu neko arī neatradu .. Uzgāju vienu mistiski JS kodu, bet tā arī neizpratu kur kam tur sakars ..

Link to comment
Share on other sites

unix_timestamp kā laika jēdziens ietver gan datumu, gan laiku (pulksteni).

Dīvaini, ka tu "par datumu neko arī neatradi".

Man atlika uzšķirt MySQL manuāli UNIX_TIMESTAMP funkcijai: http://dev.mysql.com/doc/refman/5.0/en/dat..._unix-timestamp un attiecīgi izlasīt:

If called with no argument, returns a Unix timestamp (seconds since '1970-01-01 00:00:00' UTC) as an unsigned integer.

Acīmredzami, ka tur datums ir iekļauts arī.

Ja joprojām neesi pārliecināts, tad lasi šeit: http://en.wikipedia.org/wiki/Unix_timestamp

Nesaprotu kā var "neko neatrast"...

Link to comment
Share on other sites

×
×
  • Create New...