Witam! Miałem zrobić coś takiego: Kurs rozpoczyna się 1 każdego miesiąca. Od 10ego ma się pojawiać informacja że kurs rozpoczyna się 1 następnego miesiąca. Jeżeli 1 wypada w sobotę, niedziele lub święto to ten dzień jest przesuwany na kolejny dzień pracujący.
np. 3 stycznia jest informacja "Kurs rozpoczyna się 1 stycznia 2011r."
ale np. 12 stycznia jest informacja "Kurs rozpoczyna się 1 lutego 2011r."

I teraz wygląda to tak:

plik index.php
  1. <?php
  2. $dt = date('w');
  3. $d = date('d');
  4. $m = date('n');
  5. $r = date('Y');
  6.  
  7. if ($d >=1 && $d<=10) {
  8.  
  9. echo "Kurs rozpocznie sie:"; require ('date2.php'); echo " ", $m ," ", $r,"r.";
  10. }
  11. else {
  12. echo "Kurs rozpocznie sie:"; require ('date.php'); echo " ", ++$m ," ", $r,"r.";
  13. }
  14.  
  15. ?>


plik date.php

  1. <?php
  2.  
  3. // Skrypt sprawdza czy 1 dzień następnego miesiąca nie jest wolny od pracy
  4.  
  5. $dzien = new DateTime();
  6. $dzien->modify( 'first day of next month' );
  7.  
  8. $st=1;
  9. $dim=date('d m');
  10.  
  11. // Sprawdzam czy to nie sobota
  12. if($dzien->format( 'w' )==6) {
  13. echo $st+2;
  14. }
  15.  
  16. //Sprawdzam czy to nie niedziela lub inny dzień wolny
  17. elseif (
  18. $dzien->format( 'w' )==0 || $dim==('01 01') || $dim==('06 01') || $dim==('24 04') || $dim==('25 04') || $dim==('01 05') || $dim==('03 05') || $dim==('12 06') || $dim==('23 06') || $dim==('15 08') || $dim==('01 11') || $dim==('11 11') || $dim==('25 12') || $dim==('26 12') || $dim==('31 12')) {
  19. echo $st+1;
  20. }
  21.  
  22. else {
  23. echo $st;
  24. }
  25.  
  26. ?>


plik date2.php

  1. <?php
  2.  
  3. // Skrypt sprawdza czy 1 dzień miesiąca nie jest wolny od pracy
  4.  
  5. $today = date('D');
  6. $dzien = date('w',strtotime(date('Y-m-01',strtotime($today))));
  7.  
  8. $st=1;
  9. $dim=date('d m');
  10.  
  11. // Sprawdzam czy to nie sobota
  12. if($dzien==6) {
  13. echo $st+2;
  14. }
  15.  
  16. //Sprawdzam czy to nie niedziela lub inny dzień wolny
  17. elseif (
  18. $dzien==0 || $dim==('01 01') || $dim==('06 01') || $dim==('24 04') || $dim==('25 04') || $dim==('01 05') || $dim==('03 05') || $dim==('12 06') || $dim==('23 06') || $dim==('15 08') || $dim==('01 11') || $dim==('11 11') || $dim==('25 12') || $dim==('26 12') || $dim==('31 12')) {
  19. echo $st+1;
  20. }
  21.  
  22. else {
  23. echo $st;
  24. }
  25.  
  26. ?>


Niby działa ale nie jestem pewny czy w 100% dobrze, jakby ktoś bystry rzucił okiem to byłbym wdzięczny. Nie jestem pewny czy dobrze zadziała gdy święto wypadnie w piątek a póżniej jest sobota skoro najpierw sprawdza niedzielę i sobotę.
Pewno można to prościej zrobić ale jestem początkujący i zrobiłem co potrafię smile.gif