Dodaj do ulubionych

Data w PHP

31.05.06, 22:27
Chciałbym napisać w pętli for datę ze zmieniającym się miesiącem, który
zwiększałby się o 1 aż do granicy pętli. Oczywiście jeśli po 12 przejdzie do
01 to powinien zmienić się także rok. Jak to zrobić? Oczywiście nie chodzi mi
tu o samo zapisanie wyświetlania daty, a nie o całą pętlę.
Obserwuj wątek
    • tommy_from_cracow Re: Data w PHP 01.06.06, 17:29

      tworzysz sobie zmienna $miesiac ktorej przypisywana jest wartosc z tego co zwraca odpowiednio sformatowana funkcja date no i tereaz pytanie czy for jest najodpowiedniejszym wyjsciem bo ja bym pokombinowal w while albo ze switchami mysle ze kod bardziej zrozumialy... i logiczniejsze rozwiazanie
      Pozdrawiam!
    • gdotb Re: Data w PHP 02.06.06, 04:49
      $miesiac = '1';
      $rok = ...;

      while ($miesiac < '12') {

      .
      .
      .

      $miesiac++;

      if ($miesiac == '13') {
      $miesiac = '1';
      $rok++;
      }

      }


      Nie testowalem tego, ale powinno dac ci do myslenia.

      G.
      • tommy_from_cracow Re: Data w PHP 02.06.06, 09:17
        Hej!,
        nie wydaje mi sie by Twoje rozwiazanie bylo najlepsze. Miesiac powinien miec wartosci na podstawie tego co zwraca funkcja daty. Bo teraz oczywiscie kal. bedzie dzialal ale nie bedzie mial odniesienia do rzeczywistosci.
        • gdotb Re: Data w PHP 03.06.06, 02:50
          dawalem tylko przyklad.
          wiadomo, ze miesiac musi byc wyciagany z funkcji date() i dopiero wtedy
          porownywany do liczby stalej, czyli '12' (albo 13) w tym wypadku.

          ~G.
          • tommy_from_cracow Re: Data w PHP 03.06.06, 12:56
            Hej,

            Problem tylko w tym co napisales ze date nigdy nie zwroci misiaca jako 13...

            Pozdrawiam!
            • gdotb Re: Data w PHP 04.06.06, 04:14
              Ej Tomek, czepiasz sie :)
              Dalem przyklad jak to mozna zrobic, na tym, moim skromnym zdaniem polega pomoc:
              nie dajesz gotowego skryptu, tylko, jesli wiesz, rzucach kluczowymi haslami, a
              pytajacy wie przynajmniej w jakim kierunku podazac.

              Ja sie tak uczylem PHP. Nikt nie pisal dla mnie skryptow, tylko uprzejmie
              informowali mnie jaka funkcja, albo w jaki sposob on/ona by to zaprogramowal.

              ~G.
              • tommy_from_cracow Re: Data w PHP 04.06.06, 11:14

                OK masz racje!
                Ja bym to zrobil tak:

                <?php
                $rok=date(pobierasz rok w formacie odpowiednim);
                $miesiac=date(pobierasz miesiac);

                switch($miesiac){
                case 1:
                echo 'styczen';
                echo "$rok";
                break;
                case 2:
                echo 'luty';
                echo "$rok";
                break;
                ...
                ...
                ...
                }
                ?>

                PS jesli chodzi o formatowanie daty to odsylam do manuala:
                be2.php.net/manual/pl/function.date.phpPozdrawiam!
                • gdotb Re: Data w PHP 05.06.06, 02:47
                  to jest czesc skryptu, jaki napisalem dla klienta - ten wpisuje zakres dat OD
                  DO, czyli zmienne $din, $dout (day in, day out) etc, nalezy zmienic i wyciagnac
                  z funkcji DATE()

                  $i = sprintf("%d", $din);
                  $stop = sprintf("%d", $dout);

                  $sYear = $yout;
                  $cYear = $yin;

                  $sMonth = sprintf("%d", $mout);
                  $cMonth = sprintf("%d", $min);

                  ////////////////
                  // number of days in each month
                  $totalDays = array(0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

                  // if leap year, modify $totaldays array appropriately
                  if (date("L", mktime(0,0,0,1,1,$sYear)))
                  {
                  $totalDays[2] = 29;
                  }

                  $loop = TRUE;
                  while ($loop) {

                  if (($i == 32) && ($cMonth == 12)) {
                  $cYear++;
                  $cMonth = 1;
                  $i = 1;
                  }

                  else if ($i == $totalDays[$cMonth]+1) {
                  $i = 1;
                  $cMonth++;
                  }
                  .
                  .
                  .

                  $i++;
                  }
Inne wątki na temat:

Nie masz jeszcze konta? Zarejestruj się


Nakarm Pajacyka
Wersja mobilna