DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   PHP (http://www.devprotalk.com/forumdisplay.php?f=9)
-   -   Vremenski interval (http://www.devprotalk.com/showthread.php?t=2628)

skaarj 18. 03. 2007. 02:18

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?

Mrlja 18. 03. 2007. 04:10

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 ) {
}

otprilike tako...

dee 18. 03. 2007. 07:00

|| ili && ?

Mrlja 18. 03. 2007. 07:03

... pa ne moze i brzo i tacno...
sorry :o
Dakle: AND

dee 18. 03. 2007. 07:42

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'

Mrlja 18. 03. 2007. 07:45

Ajmo mi na pivo, nedelja je... :)

skaarj 18. 03. 2007. 12:43

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! :)

dee 18. 03. 2007. 13:01

nije li Unix timpestamp trenutka kraja uvijek veci od timestampa trenutka pocetka?

ili je danas stvarno freakin' nedjelja? :D

skaarj 18. 03. 2007. 13:20

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

Mrlja 18. 03. 2007. 13:25

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...


Vreme je GMT +2. Trenutno vreme je 05:29.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.