Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] mktime, date - dodanie nazw miesięcy po polsku, [PHP] mktime, date - dodanie nazw miesięcy po polsku
monsarrat
post 22.11.2012, 10:18:16
Post #1





Grupa: Zarejestrowani
Postów: 23
Pomógł: 1
Dołączył: 29.02.2012
Skąd: Polska

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


Witam, proszę o dopisanie funkcji pozwalającej na wyświetlanie polskie nazwy miesięcy. Z góry dziękuję za pomoc.

  1.  
  2. <?php
  3. $month = (isset($_GET["m"]) && is_numeric($_GET["m"])) ? (int)$_GET["m"] : "";
  4. $year = (isset($_GET["y"]) && is_numeric($_GET["y"])) ? (int)$_GET["y"] : "";
  5.  
  6. if (strcmp($month, "") == 0 || strcmp($year, "") == 0)
  7. {
  8. $from = time();
  9. $info = getdate($from);
  10. $month = $info["mon"];
  11. $year = $info["year"];
  12. }
  13.  
  14. $from = mktime(0, 0, 0, $month, 1, $year);
  15. $to = mktime(0, 0, 0, ($month + 1 == 13) ? 1 : $month + 1, 1, ($month + 1 == 13) ? $year + 1 : $year);
  16.  
  17. ?>
  18.  
  19.  
  20. <h2><?php echo date('F Y', $from);?></h2>
  21.  


Ten post edytował monsarrat 22.11.2012, 10:26:43
Go to the top of the page
+Quote Post
nospor
post 22.11.2012, 10:28:02
Post #2





Grupa: Moderatorzy
Postów: 36 556
Pomógł: 6314
Dołączył: 27.12.2004




jesli miesiac == 1 echo styczen
jesli miesiac == 2 echo luty
....
jesli miesiac == 12 echo grudzien


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
skowron-line
post 22.11.2012, 10:31:47
Post #3





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


Na podstawie ustawień lokalnych
http://pl1.php.net/manual/en/function.setlocale.php
możesz wyświetlić nazwy miesięcy w danym języku
http://pl1.php.net/manual/en/function.strftime.php
Cytat
string strftime ( string $format [, int $timestamp = time() ] )
(patrz przykłady)



--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
Zielonkawy18
post 22.11.2012, 10:33:46
Post #4





Grupa: Zarejestrowani
Postów: 152
Pomógł: 4
Dołączył: 4.10.2012

Ostrzeżenie: (10%)
X----


Zdecydowanie o wiele lepsze rozwiązanie to:

http://php.net/manual/en/language.types.array.php


--------------------
C/C++/C#/JAVA/SQL ( funkcje, procedury, pakiety ).
Go to the top of the page
+Quote Post
monsarrat
post 22.11.2012, 10:36:07
Post #5





Grupa: Zarejestrowani
Postów: 23
Pomógł: 1
Dołączył: 29.02.2012
Skąd: Polska

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


hem bawienie sie w if`y to zaśmiecanie kodu w pewnym sensie


próbowąłem dodac na początek kodu php

  1. $arrLocale = array( "pl_PL", "polish_pol" );
  2. setlocale( LC_ALL, $arrLocale );


jednak nie pomogło :/
Go to the top of the page
+Quote Post
nospor
post 22.11.2012, 10:40:04
Post #6





Grupa: Moderatorzy
Postów: 36 556
Pomógł: 6314
Dołączył: 27.12.2004




Cytat
hem bawienie sie w if`y to zaśmiecanie kodu w pewnym sensie
Ale przynajmniej działa...

Martwisz się o pare ifów, ze niby ci zaśmiecą kod, podczas gdy Twój kod, jest daleki od ideału więć te parę dodatkwych ifów naprawdę by ci nie zaszkodziło.
Tym bardziej że możesz je zamienić na SWICH CASE a całość dodatkowo wstawić w funkcję getMonthName()


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
skowron-line
post 22.11.2012, 10:52:05
Post #7





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


  1. setlocale(LC_ALL, 'pl_PL.');
samo pl_PL wystarczy


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
monsarrat
post 22.11.2012, 10:58:01
Post #8





Grupa: Zarejestrowani
Postów: 23
Pomógł: 1
Dołączył: 29.02.2012
Skąd: Polska

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


hem jednak
  1. setlocale(LC_ALL, 'pl_PL.');
nie zadziałało ...

to jak to bezie z tymi IF - nospor co kolega ma dokłądnie na myśli.... ?
Go to the top of the page
+Quote Post
nospor
post 22.11.2012, 10:59:44
Post #9





Grupa: Moderatorzy
Postów: 36 556
Pomógł: 6314
Dołączył: 27.12.2004




Cytat
to jak to bezie z tymi IF - nospor co kolega ma dokłądnie na myśli.... ?
Nie bardzo rozumiem... przecież ci napisałem co mam na mysli smile.gif Czego nie zrozumiałeś?

  1. function getMonthName($m){
  2. //tutaj moje IF, które zwracają przez return nazwe miesiac
  3. }
  4.  
  5. // a poźniej w kodzie robisz
  6.  
  7. echo getMonthName(11);

i juz


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
skowron-line
post 22.11.2012, 11:22:28
Post #10





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


Cytat(monsarrat @ 22.11.2012, 10:58:01 ) *
hem jednak
  1. setlocale(LC_ALL, 'pl_PL.');
nie zadziałało ...

Bezmyślnie skopiowałeś zamiast pokombinować albo zerknąć pod link który podałem
Cytat
setlocale(LC_ALL, 'nl_NL');

ja się machnąłem i kropkę dałem
Cytat
setlocale(LC_ALL, 'pl_PL);


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
monsarrat
post 22.11.2012, 11:49:30
Post #11





Grupa: Zarejestrowani
Postów: 23
Pomógł: 1
Dołączył: 29.02.2012
Skąd: Polska

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


pokombinowałem i roziwzniem jest
  1. setlocale(LC_ALL, 'pl_PL.UTF-8');

konieczne jest danie UTF-8 ze względu na poskie litery ń i ź

w całości działający kod wygląda tak, może komuś sie przyda... :



  1. <?php
  2.  
  3. setlocale(LC_ALL, 'pl_PL.UTF-8');
  4.  
  5. $month = (isset($_GET["m"]) && is_numeric($_GET["m"])) ? (int)$_GET["m"] : "";
  6. $year = (isset($_GET["y"]) && is_numeric($_GET["y"])) ? (int)$_GET["y"] : "";
  7.  
  8. if (strcmp($month, "") == 0 || strcmp($year, "") == 0)
  9. {
  10. $from = time();
  11. $info = getdate($from);
  12. $month = $info["mon"];
  13. $year = $info["year"];
  14. }
  15.  
  16. $from = mktime(0, 0, 0, $month, 1, $year);
  17. $to = mktime(0, 0, 0, ($month + 1 == 13) ? 1 : $month + 1, 1, ($month + 1 == 13) ? $year + 1 : $year);
  18.  
  19. ?>
  20.  
  21. <div align="center">
  22. <hr/>
  23.  
  24.  
  25. <h2><?php echo strftime("%B, %G",$from);?></h2>
  26.  
  27. <div>
  28. <a class="" href="index.php?y=<?php echo $year - 1; ?>&m=<?php echo $month; ?>">Poprzedni Rok</a>
  29. <a class="" href="index.php?y=<?php echo ($month - 1 == 0) ? $year - 1 : $year; ?>&m=<?php echo ($month - 1 == 0) ? 12 : $month - 1; ?>">Poprzedni Miesiąc</a>
  30. <a class="" href="index.php?y=<?php echo ($month + 1 == 13) ? $year + 1 : $year; ?>&m=<?php echo ($month + 1 == 13) ? 1 : $month + 1; ?>">Następny Miesiąc</a>
  31. <a class="" href="index.php?y=<?php echo $year + 1; ?>&m=<?php echo $month; ?>">Następny Rok</a>
  32. <?php
  33. $currentMonthInfo = getdate(time());
  34. ?>
  35.  
  36. <a class="" href="index.php?y=<?php echo $currentMonthInfo["year"]; ?>&m=<?php echo $currentMonthInfo["mon"]; ?>">Aktualny miesiąc</a>
  37. </div>
  38.  
  39.  


Pozdrawiam i dziękuje za pomoc.

Ten post edytował monsarrat 22.11.2012, 11:57:33
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: 25.04.2025 - 05:17