18. 03. 2007. | #1 |
profesionalac
Qualified
Datum učlanjenja: 15.09.2006
Lokacija: Zemlja cuda
Poruke: 114
Hvala: 11
3 "Hvala" u 3 poruka
|
Vremenski interval
Evo problema:
Korisnik zadaje interval (recimo 22:45 - 0:15) u kome zeli da se izvrsi neka operacija. Cron pokrece php skript svakih 5 minuta i proverava da li je startovan u gorenavedenom intervalu ako jeste izvrsava sve sto treba za dati interval. Intervala moze biti mnogo i mogu se presecati, svaka stavka u bazi ima svoj interval. Pitanje je kako da PHPom, saznam da li sam u zadatom intervalu? |
18. 03. 2007. | #2 |
novi član
Na probnom radu
Datum učlanjenja: 12.02.2007
Lokacija: Novi Sad
Poruke: 25
Hvala: 0
4 "Hvala" u 3 poruka
|
Kôd:
$tnow = time(); $t1 = mktime( $hour1, $min1, 0, date('m'), date('d'), date('Y') ); $t2 = mktime( $hour2, $min2, 0, date('m'), date('d'), date('Y') ); if ( $tnow >= $t1 OR $now <= $t2 ) { } |
18. 03. 2007. | #3 |
Domagoj Horvat
Expert
|
|| ili && ?
__________________
postoje ludosti bez kojih je nemoguce ljudsko dostojanstvo |
18. 03. 2007. | #4 |
novi član
Na probnom radu
Datum učlanjenja: 12.02.2007
Lokacija: Novi Sad
Poruke: 25
Hvala: 0
4 "Hvala" u 3 poruka
|
... pa ne moze i brzo i tacno...
sorry Dakle: AND Poslednja izmena od Mrlja : 18. 03. 2007. u 08:05. |
18. 03. 2007. | #5 |
Domagoj Horvat
Expert
|
s tim da, ako drzi stvari u bazi, lakse ce mu bit pisat query
Kôd:
SELECT * FROM stavke WHERE start < '$tnow' AND end > '$tnow'
__________________
postoje ludosti bez kojih je nemoguce ljudsko dostojanstvo |
18. 03. 2007. | #6 |
novi član
Na probnom radu
Datum učlanjenja: 12.02.2007
Lokacija: Novi Sad
Poruke: 25
Hvala: 0
4 "Hvala" u 3 poruka
|
Ajmo mi na pivo, nedelja je...
|
18. 03. 2007. | #7 |
profesionalac
Qualified
Datum učlanjenja: 15.09.2006
Lokacija: Zemlja cuda
Poruke: 114
Hvala: 11
3 "Hvala" u 3 poruka
|
Resio sam problem ranije na slican nacin samo koristeci strtotime.
Usput mali komentar, ako nekom ovo jos zatreba. Prilozeni kod ne uzima u obzir intervale koji prelazi dva dana, recimo 22:45 - 00:25. To se resava dodavanjem jos jednog dana na drugi datum ukoliko su sati pocetka intervala veci od sati kraja intervala. U svakom slucaju havala na trudu u nedeljno jutro! |
18. 03. 2007. | #8 |
Domagoj Horvat
Expert
|
nije li Unix timpestamp trenutka kraja uvijek veci od timestampa trenutka pocetka?
ili je danas stvarno freakin' nedjelja?
__________________
postoje ludosti bez kojih je nemoguce ljudsko dostojanstvo |
18. 03. 2007. | #9 |
profesionalac
Qualified
Datum učlanjenja: 15.09.2006
Lokacija: Zemlja cuda
Poruke: 114
Hvala: 11
3 "Hvala" u 3 poruka
|
U aplikaciji se ne cuvaju datumi samo intrevali (mozda u pocetnom pitanju to nije dovoljno jasno navedeno).
Tako da ako neko hoce da mu sistem nesto radi od 23:45- 00:15 svaki dan ne bi mu bas radilo kako treba. Na nacin na koji je izvedeno gore uzeo bi u obzir vreme od 18.03.2007 23:45 do 18.03.2007 00:15... Tako da bi UNIX stamp kraja bio manji od UNIX stampa pocetka Ispravano vreme bi bilo 18.03.2007 23:45 do 19.03.2007 00:15 |
18. 03. 2007. | #10 |
novi član
Na probnom radu
Datum učlanjenja: 12.02.2007
Lokacija: Novi Sad
Poruke: 25
Hvala: 0
4 "Hvala" u 3 poruka
|
ako je u pitanje definisanje intervala, pravilno bi bilo dati ga u dva intervala (00:00 - 00: 15 i 23:45 - 23:59)
.. a jeste nedelja i kotlic se krcka... |
|
|