![]() |
#1 |
profesionalac
Qualified
Datum učlanjenja: 15.09.2006
Lokacija: Zemlja cuda
Poruke: 114
Hvala: 11
3 "Hvala" u 3 poruka
![]() |
![]() 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? |
![]() |
![]() |
![]() |
#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 ) { } |
![]() |
![]() |
![]() |
#3 |
Domagoj Horvat
Expert
|
![]() || ili && ?
__________________
postoje ludosti bez kojih je nemoguce ljudsko dostojanstvo |
![]() |
![]() |
![]() |
#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 07:05. |
![]() |
![]() |
![]() |
#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 |
![]() |
![]() |
![]() |
#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...
![]() |
![]() |
![]() |
![]() |
#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! ![]() |
![]() |
![]() |
![]() |
#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 |
![]() |
![]() |
![]() |
#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 |
![]() |
![]() |
![]() |
#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... |
![]() |
![]() |
![]() |
|
|