Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]data polska(dzień tyg)
pablo_83
post 1.06.2009, 22:18:25
Post #1





Grupa: Zarejestrowani
Postów: 200
Pomógł: 16
Dołączył: 11.01.2009
Skąd: wrocław

Ostrzeżenie: (0%)
-----


witam jak mam wstawić funkcje dotyczącą polskich dni tyg w echo żeby je wyświetlić, mam coś takiego ale to nie działa mi sad.gif miesiące wyświetlane są w porządku. Proszę o pomoc.
$dzien --- zmienna pobierana z formularza
$miesiac --- j.w.
  1. <?php
  2. function dzien_tyg($nr) {
  3.  
  4. $dzien_pl = array(0 => "Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota");
  5.  
  6. return $dzien_pl[$nr];
  7. }
  8.  
  9. function miesiac_pl($mies) {
  10.  
  11. $mies_pl = array(1=>"Stycznia", "Lutego", "Marca", "Kwietnia", "Maja", "Czerwieca", "Lipieca", "Sierpnia", "Września", "Października", "Listopada", "Grudnia");
  12.  
  13. return $mies_pl[$mies];
  14. }
  15. echo ("<br /><br />");
  16.  
  17.  
  18. echo  '<font color="red">'.dzien_tyg($dzien).' '.$dzien.' '.miesiac_pl($miesiac).' '.$rok. ' roku</font><br />';
  19. ?>
Go to the top of the page
+Quote Post
marioxp
post 1.06.2009, 22:21:27
Post #2





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 29.05.2009

Ostrzeżenie: (0%)
-----


tu masz link do opisu jak to zrobic

http://forum.php.pl/lofiversion/index.php/t32432.html
Go to the top of the page
+Quote Post
pablo_83
post 1.06.2009, 22:27:02
Post #3





Grupa: Zarejestrowani
Postów: 200
Pomógł: 16
Dołączył: 11.01.2009
Skąd: wrocław

Ostrzeżenie: (0%)
-----


spoko w ten sposób to ja też potrafie chodzi o to że muszę zrobić to za pomocą tych funkcji, funkcje są napisane dobrze tylko w echo coś z dniami pomotałem i nie wyświetla, nie wiem co mam zmienić. Miesiące działają
Go to the top of the page
+Quote Post
melkorm
post 1.06.2009, 22:29:45
Post #4





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


  1. <?php
  2. var_dump($dzien);
  3. ?>


Wszystko Tobie powie... winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
vokiel
post 1.06.2009, 22:36:29
Post #5





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


A co masz w zmiennych $dzien i $miesiac?

  1. <?php
  2. $dzien = date('j');
  3. $miesiac = date('n');
  4. $rok = date('Y');
  5. echo  '<font color="red">'.dzien_tyg($dzien).' '.$dzien.' '.miesiac_pl($miesiac).' '.$rok. ' roku</font><br />';
  6. ?>


--------------------
Go to the top of the page
+Quote Post
pablo_83
post 1.06.2009, 23:01:27
Post #6





Grupa: Zarejestrowani
Postów: 200
Pomógł: 16
Dołączył: 11.01.2009
Skąd: wrocław

Ostrzeżenie: (0%)
-----


hmmm no to w takim razie mam większy problem....

dzień i miesiąc nie deklarowałem w jakich postaciach mają się wyświetlać.
próbowałem zastąpić to switch/case jednak tutaj też pojawia się problem nie wyswietla prawidłowej daty np. wybrałem 5.05.2009 i wyświetla mi że to piątek .... a to był wtorek ;/
jak zrobić żeby działało to poprawnie (sposób już nieistotny byle chodziło) pliss help

edit 1

ja chyba nie powinienem tutaj deklarować postaci np. $dzien = date("w"); bo wtedy wczytuje mi to aktualny dzień a to użytkownik wypełniając formularz decyduje jaki dzień ma być wyświetlony

Ten post edytował pablo_83 1.06.2009, 23:11:11
Go to the top of the page
+Quote Post
vokiel
post 2.06.2009, 08:16:28
Post #7





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Pokaż więcej kodu, bo ja tu coś widze, że błąd jest gdzie indziej.
Jeśli przekażesz do funkcji dzien_tyg np 3, to zwróci Ci środę. Jeśli nie zwraca, to znaczy, że nie przekazujesz odpowiedniego parametru. Jeśli pobierasz te dane z formularza, to trzeba sprawdzić, co otrzymujesz. Zrób zrzut zmiennych tak jak proponował melkorm.


--------------------
Go to the top of the page
+Quote Post
pablo_83
post 2.06.2009, 08:33:45
Post #8





Grupa: Zarejestrowani
Postów: 200
Pomógł: 16
Dołączył: 11.01.2009
Skąd: wrocław

Ostrzeżenie: (0%)
-----


to cały skrypt, wykomentowałem te funkcje dotyczące dni bo nie wiem jak mam zrobić by działały poprawnie.
Jak deklarowałem dla $dzień =("w") - to zwraca mi aktualny dzień
gdy zdeklarowałem $dzien = ("j") wysypuje się po podaniu dnia wiekszego niż 6, (nie zapetla się) i dodatkowo zawsze 0 = niedz, 1 = pon, a przecież tak nie jest 1 dzień miesiąca moze być np środa.


  1. <body bgcolor="#000000" text="#FFFFFF" ><b>
  2. <form action="data.php" method="post">
  3.  
  4. <input type="text" name="dzien" size="5" />Dzień<br /><br />
  5. <input type="text" name="miesiac" size="5" />Miesiąc<br /><br />
  6. <input type="text" name="rok" size="5" />Rok<br /><br /><br />
  7. <input type="submit" name="wyslij" value= "sprawdź" /><br />
  8.  
  9. </form>

  1. <?php
  2. $dzien = $_POST['dzien'];
  3. $miesiac = $_POST['miesiac'];
  4. $rok = $_POST['rok'];
  5.  
  6.  
  7.  
  8. if (@checkdate( $miesiac,$dzien,$rok))
  9.    {
  10.       echo("<br /> $dzien $miesiac $rok Data którą podałeś jest poprawna");
  11.    }
  12.       else
  13.       {
  14.         echo 'Data którą podałeś jest niepoprawna  !!!';
  15.      }
  16.        
  17.        
  18. /*$dzientyg = date("w");
  19.      switch($dzientyg){    
  20. case 0 : $dzientyg="Niedziela"; break;
  21. case 1 : $dzientyg="Poniedziałek"; break;
  22. case 2 : $dzientyg="Wtorek"; break;
  23. case 3 : $dzientyg="Środa"; break;
  24. case 4 : $dzientyg="Czwartek"; break;
  25. case 5 : $dzientyg="Piątek"; break;
  26. case 6 : $dzientyg="Sobota"; break;
  27. }
  28. function dzien_tyg($nr) {
  29.  
  30.  $dzien_pl = array(0 => "Niedziela", "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota");
  31.  
  32. return $dzien_pl[$nr];
  33. }*/
  34.  
  35.  
  36.  
  37. function miesiac_pl($mies) {
  38.  
  39. $mies_pl = array(1=>"Stycznia", "Lutego", "Marca", "Kwietnia", "Maja", "Czerwca", "Lipca", "Sierpnia", "Września", "Października", "Listopada", "Grudnia");
  40.  
  41. return $mies_pl[$mies];
  42. }
  43. echo ("<br /><br />");
  44.  
  45.  
  46. echo  '<font color="red"> '.$dzien.' '.miesiac_pl($miesiac).' '.$rok. ' roku</font><br /><br /><br />';        
  47. ?>
  48.  
  49. <?php
  50. setlocale(LC_ALL, 'pl_PL');
  51. echo 'Dziś jest<font color="blue">';
  52. echo strftime(" %A %d %B %Y r.<br />");
  53. echo '</font>';
  54. ?>
  55. </b>
Go to the top of the page
+Quote Post
golaod
post 2.06.2009, 08:33:48
Post #9





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Jak ty się spodziewasz, że Ci wyświetli poprawny dzień tygodnia skoro np. 23.05.2009 to dzień tygodnia liczysz jako 23. Osobiście nie słyszałem o takim dniu tygodnia.


Edit @up:

No widzisz zatem musisz zrobić date("w", mktime(0, 0, 0, $dzien, $miesiac, $rok)) i to dopiero będzie dzień tygodnia

Ten post edytował golaod 2.06.2009, 08:35:57
Go to the top of the page
+Quote Post
vokiel
post 2.06.2009, 10:11:44
Post #10





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Zamiast inputów zrób select'y. Wtedy będziesz miał większą kontrolę nad tym co dostaniesz od użytkownika, tak to ciągle będą błędy bo ktoś wpisze poniedziałek zamiast 1.
Dzień i miesiąc bez problemu możesz zastąpić selektami, rok w zależności od sytuacji.


--------------------
Go to the top of the page
+Quote Post
erix
post 2.06.2009, 10:17:10
Post #11





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Ale Wy kombinujecie... tongue.gif
  1. <?php
  2. setlocale(LC_ALL, 'polish');
  3. echo strftime('%A');
  4. ?>


Sobie tylko dopisz locale do tablicy, bo testowałem pod WXP. [;


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
Pilsener
post 2.06.2009, 14:47:51
Post #12





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Zgadza się, powinno wystarczyć coś takiego:
  1. <?php
  2. $arrLocale = array( "pl_PL", "polish_pol" );
  3. setlocale(LC_ALL, $arrLocale );
  4. ?>
- działa na 99% cywilizowanych serwerów (przynajmniej u mnie). Skrypty typu array(paniedzielnik, wtornik, srieda, czetwier, piatnica) są archaiczne i nie powinniśmy przykładać ręki do takich rozwiązań winksmiley.jpg
Go to the top of the page
+Quote Post
szumigt
post 1.02.2010, 15:22:23
Post #13





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 5.10.2007

Ostrzeżenie: (0%)
-----


Cytat(Pilsener @ 2.06.2009, 14:47:51 ) *
Zgadza się, powinno wystarczyć coś takiego:
[PHP] pobierz, plaintext
    <LI class=li1><?php<LI class=li2>$arrLocale = array( "pl_PL", "polish_pol" );<LI class=li1>setlocale(LC_ALL, $arrLocale );
  1. ?>
[PHP] pobierz, plaintext - działa na 99% cywilizowanych serwerów (przynajmniej u mnie). Skrypty typu array(paniedzielnik, wtornik, srieda, czetwier, piatnica) są archaiczne i nie powinniśmy przykładać ręki do takich rozwiązań winksmiley.jpg


No dobrze ... ja mam serwerek na Debianie (lenny) i takie ustawienie nie działa ... doradźcie cosik questionmark.gif
Go to the top of the page
+Quote Post
vokiel
post 1.02.2010, 19:34:27
Post #14





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Wybaczcie za link do swojego bloga, ale może to naświetli sprawę: PHP Date – Polskie nazwy dni i miesięcy. Funkcje date strftime


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 20.07.2025 - 10:30