mały skrypcik daty - by Premier - oceńcie, poprawcie

Języki, których efekty są wykonywane po stronie serwera. PHP, ASP czy CGI w połączeniu z bazami danych SQL dają niezwykłe możliwości budowy i zarządzania stron WWW. Tu zadajemy pytania oraz demonstrujemy kod, z którym mamy problem.
Premier
Posty: 6
Rejestracja: wt lis 14, 2006 11:50 pm

mały skrypcik daty - by Premier - oceńcie, poprawcie

Post autor: Premier »

Noob Php Wita:)
Szczeże mówiąc to mój pierwszy skrypt wcześniej bawiłem sie z komentarzami ale jakoś na głęboką wode sie rzuciłem bo wogule bez znajomości choćby podstaw PHP.
Teraz prośba do was o skomentowanie tego malutkiego skrypcika i jeśli jest coś źle, coś by dało sie jeszcze poprawić, coś gdzies zamienić, coś wywalić, to piszcie... :)
Tu możecie go zobaczyć w całej okazałości: http://www.bike-t.dolsat.pl/php/Data.php

Wklejam sam kod php, bez html i css, jak co to wyżej link:

[php]
<?php

$dzien=date("l");
$dzien2=date("d");
print("Dziś jest: ");

//Dzień
if ($dzien=="Monday"){
print("Poniedziałek ");
}elseif($dzien=="Tuesday"){
print("Wtorek ");
}elseif($dzien=="Wednesday"){
print("¦roda ");
}elseif($dzien=="Thursday"){
print("Czwartek ");
}elseif($dzien=="Friday"){
print("Pi±tek ");
}elseif($dzien=="Saturday"){
print("Sobota ");
}else {
print("niedziela ");
}
print($dzien2 ."-ego". "<br>");

//miesi±c
print("Miesi±ca: ");
$mies=date("m");
if ($mies=="1"){
print("Stycznia");
}elseif($mies=="2"){
print("Lutego<br>");
}elseif($mies=="3"){
print("Marca<br>");
}elseif($mies=="4"){
print("Kwietnia<br>");
}elseif($mies=="5"){
print("Maja<br>");
}elseif($mies=="6"){
print("Czerwca<br>");
}elseif($mies=="7"){
print("Lipca<br>");
}elseif($mies=="8"){
print("Sierpnia<br>");
}elseif($mies=="9"){
print("Wrze¶nia<br>");
}elseif($mies=="10"){
print("PaĽdziernika<br>");
}elseif($mies=="11"){
print("Listopada<br>");
}else{
print("Grudnia<br>");
}

//rok
$rok=date("Y");
print("Roku: ".$rok);

?>
[/php]
sztacho
Nowy
Nowy
Posty: 96
Rejestracja: pn paź 23, 2006 10:03 am
Lokalizacja: Lublin

Re: mały skrypcik daty - by Premier - oceńcie, poprawcie

Post autor: sztacho »

Chyba lepiej zamiast if elseif użyć switch'a. No i jak w każdym miesiącu np. dajesz na końcu <br> to już lepiej to przejście do nowej linii dodać poza ifem (switchem po poprawkach :) ). zawsze to zmniejszy trochę kod :)
koziolek
Przelotem
Przelotem
Posty: 387
Rejestracja: sob paź 21, 2006 10:07 pm
Kontakt:

Re: mały skrypcik daty - by Premier - oceńcie, poprawcie

Post autor: koziolek »

Od strony htmlowej to najlepiej każdą linię zamknąć w elemencie <span /> o jakimś id i wspólnej klasie. Można wtedy każdy znich osobno lub grupowo ostylować.
Następna rzecz to wypisywanie. Zamiast powtarzać kod typu:
[php]<?php
print("Stycznia");
?>[/php]
Zamień to na
[php]<?php
$label = $label." Stycznia"
?>[/php]
I dopieru na samym końcu użyj jednej instrukcji print()
Premier
Posty: 6
Rejestracja: wt lis 14, 2006 11:50 pm

eh

Post autor: Premier »

Koziolek- nie bardzo kapuje:)
koziolek
Przelotem
Przelotem
Posty: 387
Rejestracja: sob paź 21, 2006 10:07 pm
Kontakt:

Re: mały skrypcik daty - by Premier - oceńcie, poprawcie

Post autor: koziolek »

Dobra. jaśniej
1. zamykanie w elementach <span/>
Jeżeli już coś wypisujesz na ekran w ten sposób warto to zamknąć w jakimś elemencie htmla. Najlepszy jest tutaj <span/> bo domyślnie jest inlinowy. O co chodzi załóżmy że chcesz uzyskać taki efekt:
Dziś jest niedziela 11-ego miesiąca września

Prawda że kolorowo? Oczywiście jest to przykład wzięty z kosmosu, ale chyba już wiesz o co chodzi. Zamykasz poszczególne elementy daty w osobnych elementach html by je móc swobodnie formatować.

2. Powtarzanie kodu
Moim zdaniem nadużywasz funkcji print(). Wiem że jest świetna, ale, lepiej użyć ja w jednym miejscu i później utrzymywać tylko jedną linię kodu.
O co zatem chodzi? Stwórz sobie zmienną o nazwie np. $mojadata. Następnie Zamiast wypisywać poszczególne dni i miesiące dodawaj do tej zmiennej odpowiednie wyrazy. Na samym końcu jednorazowo wypisz zmienną $mojadata.

pozdrawiam
the_foe
Przelotem
Przelotem
Posty: 295
Rejestracja: pt sty 31, 2003 12:53 pm
Lokalizacja: Wałbrzych
Kontakt:

Re: mały skrypcik daty - by Premier - oceńcie, poprawcie

Post autor: the_foe »

a po co sie tak meczyc?

[php]<?php
$trans = array("Monday"=>"Poniedzialek","Tuesday"=>"Wtorek"....itd);
?>[/php]

i teraz tylko na odpowiedniej dacie uzyc:
[php]<?php
$nowa_polska_data=strtr($data_do_zmiany,$trans);
?>[/php]
123456
Zaczyna działać
Zaczyna działać
Posty: 514
Rejestracja: sob paź 28, 2006 1:19 pm

...

Post autor: 123456 »

Faktycznie nie ma co sie meczyc z powtorzeniami
[php]
$dzien = date("j");
$dow = date("w");
$miech = date("n");
$rok = date("Y");

$dni = array("poniedzialek","wtorek","sroda","czwartek","piatek","sobota","niedziela");

$mieszki = array(
"stycznia","lutego","marca","kwietnia",
"maja","czerwca","lipca","sierpnia",
"wrzesnia","pazdziernika","listopada","grudnia");

print "Dzis jest: ".$dni[--$dow]." $dzien-ego
Miesiaca: ".$mieszki[--$miech] .
" Roku: $rok";
[/php]
ODPOWIEDZ