Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Funkcja najbliższa środa
Forum PHP.pl > Forum > Przedszkole
maciasgta
Witam
Panowie, potrzebuje pomocy mianowicie szukam funkcji która będzie mi wskazywała najbliższą środę od dzisiejszej daty.

Może macie coś gotowego?

Z góry dziękuje za wszelkie wskazówki

Pozdrawiam
wookieb
Najbliższą srode w przyszłości czy przeszłości?
maciasgta
W przyszłości oczywiście winksmiley.jpg
wookieb
  1. echo date('Y-m-d H:i:s', strtotime('next Wednesday'));
maciasgta
Wszystko ładnie piękne, ale 7 października pokazuje prawidłowo, że kolejna środa będzie 14 października. Ale jutro tj. 8 października pokazuję już środę z 21 października?? Co jest nie tak?
wookieb
A pokaż kod. I jak sprawdzasz jaką date pokaze jutro.
maciasgta
No wstawiłem kod który podałeś mi 2 posty wyżej. Po prostu jest 7 października to pokazuję 14, a 8 paź. pokazuje, najbliższą jako 21 październik.
wookieb
A skąd wiesz co pokaże 8 października? Skoro dziś jest 7. Zmieniłem date systemy na 8 i mam prawidłową date. Więc powiedz na jakiej podstawie stwierdzasz, że jutro pokaże ci 21?
maciasgta
Na localhost zmieniam datę systemową na jutro i stąd wiem smile.gif
wookieb
Więc upewnij się w 100% ze napewno dobrą datę ustawiłeś bo mi pokazuje prawidłowy wynik. Dobrze by było gdybyś jeszcze napisał jutro smile.gif
maciasgta
09-10-2009Najbliży termin: 21-10-2009

  1. echo"".date('d-m-Y')."";
  2.  
  3.  
  4. echo"<i><B>Najbliży termin: ".date('d-m-Y', strtotime('next Wednesday'))."</b></i><BR><BR>";


Ustawiłem datę 9 października i tak mi pokazuję, to nie wiem magia chyba albo jakieś czary..

Wicepsik
U mnie też dobrze działa.

Po co dałeś cudzysłowy w pierwszej linii kodu ?
bogdan89
  1. $data = strtotime('2009-10-09');
  2. echo date('d-m-Y, H:i', strtotime('next wednesday', $data));


a zobacz to, mi daje wynik: 14-10-2009, 00:00
maciasgta
a mi daje : 21-10-2009, 00:00

To może coś z tym moim localhostem się popsuło, jeżeli u Was jest OK to u mnie coś nie tak.

Dzięki za fatygę smile.gif
wookieb
Drugą opcja jest zastosowanie innej funkcji wyliczającej.
  1. // dni to dodania od aktualnej daty
  2. $daysToAdd = (10 - date('w'))%7;
  3. if($daysToAdd === 0)$daysToAdd = 7;
  4.  
  5. echo date('Y-m-d H:i:s', mktime(0,0,0, date('m'), date('d') + $daysToAdd));


Oczywiście można to napisać w wieeele różnych sposób. Ja wybrałem akurat taki.
celbarowicz
<?php
echo "Dzisiaj=";

$data = date("Y-m-d");
echo $data;
echo "--->";
$dzisiejszy_dzien_tygodnia=date("D");
echo $dzisiejszy_dzien_tygodnia;
echo "<br>";
// jeśli lista ma być krótsza to zmień w pętli liczbę 27 na inną(minimum 7)
for($dni=1;$dni<=27;$dni++){
$dzien = date("Y-m-d",(strtotime($data) + (60*60*24*$dni)));
echo "Za ".$dni." będzie ".$dzien;

echo "----->";

$dzientygodnia = date("D",(strtotime($data) + (60*60*24*$dni)));
if( $dzientygodnia=="Wed") { echo $dzientygodnia;}else { }

echo "<br>";
}

//jak nazwa wskazuje---celbarowicz , niepotrzebne elementy można wyrzucić ,

?>

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-2024 Invision Power Services, Inc.