![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 4.02.2004 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Witam
Potrzebuję skryptu i prosilbym Was drodzy użytkownicy o pomoc. Skrypt ma wyglądac mniej wiecej tak: W poniedzialek w godzinach od 0.00 do 18.00 wyswietlany byłby tekst1, następnie od 18.01 do 19.59 tekst2 itd, następnie we wtorek znowu od 0.00 do 18.00 chcialbym aby się wyswietlał, ale tym razem już zupełnie inny tekst3 a od 18.00 do 19.59 tekst4 itd. analogicznie, aż do niedzieli... Byłbym bardzo wdzieczny za pomoc, w dostarczeniu mi takiego skryptu. Z góry dziękuje, Adrian. ?>[/php] |
|
|
![]()
Post
#2
|
|
![]() Administrator serwera Grupa: Przyjaciele php.pl Postów: 909 Pomógł: 0 Dołączył: 12.08.2003 Skąd: /var/www/wroclaw.php Ostrzeżenie: (0%) ![]() ![]() |
[php:1:a2bc08ad85]<?
function pokaz_tekst($start, $stop, $tekst) { $uts = time(); if($start < $uts && $stop > $uts) print $tekst; } pokaz_tekst(1075941780, 1095941820, "Tekst"); /* Wyjaśnienie: W przypadku, gdy chcesz by napis pojawiał się pomiędzy dniem 5 lutego 2004 i godziną 01:43:00 a dniem 23 września 2004 i godziną 14:17:00, to wykorzystujesz powyższy przykład... Jak to działa? A no mianowicie: Funkcja time() zwraca czas unix'a (po opis zapraszam do googli i dokumentacji php). Na tej podstawie funkcja srawdza, czy ten moment mieści się w ramach czasowych wskazanych w parametrach funkcji. Jak generować taki znacznik czasu? mktime ("godziny", "minuty", "sekundy", "miesiące", "dni", "lata") w takim układzie by znaleść w/w daty wykonałem mały skrypcik: */ print mktime (1, 43, 0, 2, 5, 2004) . "<BR>n"; print mktime (14, 17, 0, 23, 9, 2004) . "<BR>n"; /* Proste? Aaaa... dla całkowitej jasności... wykonaj sobie: */ date("d.m.Y H:i:s", 1095941820); /* i popatrz na wynik... Drugi parametr funkcji date to opcjonalny znacznik czasu z którego będzie generowana data... */ ?>[/php:1:a2bc08ad85] Sorki, że wszystko w znaczniku php, ale tak wygląda czytelniej w brew pozorom... -------------------- Powrót do przeszłości :)
![]() |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 4.02.2004 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Dzięki, ale nie dokładnie o to mi chodziło, bo tam jest konkretne i musialbym napisac skrypt na cały rok... a mi chodzi, że teksty mają wyswietlać na stronie radia internetowego - kto teraz gra.
Ja się ucze dopiero i nie potrafię czegoś takiego sam napisać, chodzi iż w nocy leci muzyka to, zeby tekst wyświetlał się "Tylko muzyka" a od 18 w poniedziałek gra DJ1, to żeby o 18 skrypt pokazał tekst "Gra DJ1" a od 20 dj2 czyli "Gra DJ2" a we wtorek już dj3... I chcialbym napisac taki tygodniowy skrypt powtarzający się tak samo każdego tygodnia... |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 554 Pomógł: 0 Dołączył: 4.04.2002 Skąd: Tychy Ostrzeżenie: (0%) ![]() ![]() |
Stworz sobie tablice o stroktoze:
[php:1:e5e7700dc9]<?php $plan[0][00] = 'Gra muzyka'; //.. $plan[6][24] = 'Gra dj Hela'; ?>[/php:1:e5e7700dc9] gdzie pierwszy element tablicy to dzien tygodnia (niedziela - 0, sobota -6 ) a drugi to godzina: $plan[dzien_tygodnia][godzina] no i funkcja to nic prostszego [php:1:e5e7700dc9]<?php function plan ( $arr ){ $curr_id = $arr[date("w")]; $curr_id = array_reverse($curr_id); foreach($curr_id as $godzina => $plan){ if($godzina<=date("G")){ return $plan; } } } //wywolanie print plan($plan); ?>[/php:1:e5e7700dc9] ps Niedawno podalem podobny skrypt do wyswietlania imienin, wiec na przyszlosc uzywaj http://php.pl/search.php -------------------- "Real children don't go hoppity-skip unless they are on drugs."
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
można też tak. Z wykorzystaniem OOP, i możliwością podawania minut.
Podstaowowa różnica to to, ze podaje się nie godziny, a przedziały czasowe [php:1:79442da677]<?php /** *@data 2004-02-06 *@autor DeyV */ class ogloszenia { var $arrLista = array(); /** * wyświetla pasujące wpisy * @param booean Czy przerywać po 1 wpisie */ function drukuj( $booOnlyOne=FALSE ) { $intNow = $this->prepareData( $this->getData() ); $arrWynik = array(); if( empty( $this->arrLista ) ) { return; } foreach( $this->arrLista as $arrWiersz ) { if( $arrWiersz[0] <= $intNow and $arrWiersz[1] >= $intNow ) { $arrWynik[] = $arrWiersz[2]; if( $booOnlyOne ) { break; } } } if( !empty( $arrWynik ) ) { echo 'Dziś: '. implode( ', ', $arrWynik ); } } /** * @param string data w formacie 1.16.35 (dzień tygodnia, godzina, minuty ) * @param string data w formacie 1.16.35 (dzień tygodnia, godzina, minuty ) */ function addWpis( $data1, $data2, $text ) { $this->arrLista[] = array( $this->prepareData( $data1 ), $this->prepareData( $data2 ), $text ); } /** * aktualna data w postaci 1.16.35 (dzień tygodnia, godzina, minuty ) * @return string */ function getData( ) { return date( 'w.G.i' ); } /** * zwraca date w minutach od początku tygodnia, czyli poniedziałku, godzina 00:00 * @param string data w formacie 1.16.35 (dzień tygodnia, godzina, minuty ) * @return int */ function prepareData( $strData ) { $arrTmp = explode( '.', $strData ); if( $arrTmp[0]==0) { $arrTmp[0] = 7; } $intData = $arrTmp[2] + 60*$arrTmp[1] + 60*24*($arrTmp[0]) ; return $intData; } } $objOgloszenia = new ogloszenia; $objOgloszenia -> addWpis( '5.14.48', '5.15.40', 'piątek, pomiedzy 14.48 a 15.40 ' ); $objOgloszenia -> addWpis( '5.14.48', '5.15.03', 'piątek, pomiedzy 14.48 a 15.03 ' ); $objOgloszenia -> addWpis( '5.14.40', '5.14.45', 'piątek, pomiedzy 14.40 a 14.45 ' ); $objOgloszenia ->drukuj(); ?>[/php:1:79442da677] -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 4.02.2004 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Nie było mnie tutaj wcześniej - dzięki wielkie za pomoc, skrypcik działa OK. Pozdrawiam, punkcik za pomoc przyznany...
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 05:50 |