Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przedziały czasowe [data]
Forum PHP.pl > Forum > PHP
JOHNY
Witam. Mam pewien problem bo nie wiem jak się do tego zabrać. Sytuacja przedstawia się następująco:
Chce żeby mi na stronie automatycznie się zmieniał img danego rajdu w zależności od przedziału czasowego przez który on trwa.
EX.
1 rajd image - 09.05.2006 - 15.05.2006
2 rajd image2- 20.05.2006 - 25.05.2006

Tylko chce tak stworzyć skrypt żeby wypełniał też luke między 15 a 20 img2.

Jak się za takie coś zabrać i czy wykonalne to jest questionmark.gif
tiraeth
Niezabardzo rozumiem a co Ci chodzi, ale sądzę, że coś takiego powinno rozwiązać Twój problem:
strtotime('May, 9 2006 1:00 am')
potem wystarczy już tylko odpowiednie instrukcje warunkowe
JOHNY
Innymi słowy taki warunek by mnie interesował

  1. <?php
  2. Jeżeli $dzisiaj=date('Y-m-d'); znajduje się pomiędzy 
  3. 09.05.2006 - 15.05.2006 echo "adres do .jpg";
  4. ?>
Hacker
Hmmm...
  1. <?php
  2.  
  3. $dzisiaj = date('ymd');
  4. $dzisiaj = intval($dzisiaj);
  5. $data1 = 60509;
  6. $data2 = 60515;
  7. if ($dzisiaj>$data1 && $dzisiaj<$data2)
  8. $ok = true;
  9.  
  10. ?>

możesz z tego napisać funkcję
i w pętli jej używać
maverickkk
To potrzebujesz tych 2 funkcji:

Zwraca aktualny uniksowy znacznik czasu

http://pl.php.net/manual/pl/function.time.php

i

Oblicza uniksowy znacznik czasu dla podanej daty

http://pl.php.net/manual/pl/function.mktime.php
Hacker
@maverickkk tak tylko z ciekawości chciałem sprawdzić które rozwiązanie jest szybsze oto wyniki dla pętli 1000000x
Kod
Rozwiązanie Hacker-a: 8.3426868915558s
Rozwiązanie maverickkk-a: 21.465210914612s

a oto implementacja twojego roziązania (moje tak jak w poście wyżej)
  1. <?php
  2. $dzisiaj = time();
  3. $data1 = mktime(0, 0, 0 , 5, 15, 2006);
  4. $data2 = mktime(0, 0, 0 , 5, 9, 2006);
  5. if ($dzisiaj>$data1 && $dzisiaj<$data2)
  6. return true;
  7. return false;
  8. ?>
maverickkk
Hacker -> fajnie takie testy się ceni thumbsupsmileyanim.gif
JOHNY
A da się to użyć jakoś w ARRAY w jednej same początki przedziałów dat a w drugim ARRAY koncówki questionmark.gif
maverickkk
No pewnie że się da. Poczytaj to co napisaliśmy, wykożystaj funkcje które podaliśmy i zacznij pisać.
JOHNY
Witam qrcze nic mi nie wychodzi czytam sobie manualka a tu nic.
Chciałem sobie ułatwić sprawe i walnąć dane do mysql ale niestety nic nie wyświetla albo o czymś zapomniałem albo o czymś jeszcze nie wiem

  1. <?php
  2. $data = date('Ymd');
  3. $query = "SELECT path FROM rallydate WHERE sdata=>".$data.
  4. AND edata=<".$data."";
  5. $row = @mysql_fetch_array($wynik);  
  6. $backlogo2 = $row['path'];
  7.  
  8. ?>


myślałem że by ścieżke do img wyciągnie a tu nic HELP
Hacker
  1. SELECT DATE_FORMAT( `kolumna_z_data`, "%Y%m%d" ) AS `kolumna`
  2. DATE_FORMAT( `kolumna_z_data`, "%Y%m%d" ) AS `kolumna2`,
  3. `path`
  4. FROM `jakaś_tabela`
  5. WHERE `kolumna`=>'.$data.' AND `kolumna2`=<'.$data.'

acha i wydajniej wszędzie zamienić Y na y (chyba, że zamieżasz dawać skryptowi takie same dane przez 100 lat biggrin.gif)
JOHNY
No wykona się zapytanie ale się nie wyświetli to co bym chciał
Przykład z phpmyadmin
  1. SELECT DATE_FORMAT(sdata, '%Y%m%d') AS sdata,
  2. DATE_FORMAT(edata, '%Y%m%d') AS edata,
  3. path
  4. FROM rallydate
  5. WHERE sdata>=060120 AND edata<=060120
siemakuba
JOHNY, patrze na twój kod 3 posty wyżej:
Cytat
<?php
$data = date('Ymd');
$query = "SELECT path FROM rallydate WHERE sdata=>".$data."
AND edata=<".$data."";
$row = @mysql_fetch_array($wynik); 
$backlogo2 = $row['path'];
?>


i... nie widze w nim mysql_query. to błąd przy kopiowaniu kodu do posta, rajt?
bo jak nie błąd przy kopiowaniu, to już wiesz co potrzebujesz naprawić.

pozdr.
JOHNY
Ostateczna postać jednak musiałem troche skrypt poprawić smile.gif ale to mi wyszło dzisiaj tworząc funkcje w excelu nawet smile.gif
  1. <?php
  2.  
  3. $data = date('md');
  4. $query = "SELECT path FROM rallydate WHERE $data>=DATE_FORMAT(sdata, '%m%d') 
  5. AND $data<=DATE_FORMAT(edata, '%m%d')";
  6. $wynik = mysql_query($query);
  7. if(mysql_num_rows($wynik)==0) {
  8. $backlogo2 = "gfx/logo00.png";
  9. }
  10. while($row = mysql_fetch_array($wynik)) {
  11. $backlogo2 = $row['path'];
  12. }
  13.  
  14. ?>

Jednak pierwsza musi być data ze zmiennej a potem kolumna tablicy

Dzięki za pomoc chłopaki
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.