PHP vs JavaScript - funkcja Date

Autor: Paweł Piertasz, dodano: 26-07-2003
Kategoria: Programowanie i tworzenie

Rolą tego artykułu nie jest próba udowodnienia wyższości języka JavaScript nad PHP czy odwrotnie. Tekst ten kieruję do osób, które ze zrozumiałych im przyczyn nie mają dostępu do PHP, a chciałyby urozmaicić swoją stronę motywem daty itp. znanym z PHP

jako gmdate(). Tym właśnie osobom chciałbym przybliżyć język JavaScript, którym możemy uzyskać podobny efekt jak w przypadku PHP czy innych języków skryptowych.

Chcąc otrzymać prostą, schludną datę w PHP posłużymy się najprostszym skryptem:

<?php
echo gmdate(d m y);
?>



Efektem tego będzie np. 01 08 2003 (zależy od dnia). Wiemy również, że w PHP można zastosować cały szereg różnych poleceń począwszy od wyświetlania "am" lub "pm" przy godzinie, kończywszy na podawaniu przesunięcia strefy czasowej w sekundach. Chcąc uzyskać podobne efekty w JavaScript będziemy musieli napracować się trochę dłużej (ale tylko trochę). Zacznijmy od funkcji której będziemy używać czyli:

new Date()

. Funkcja ta zwraca nam datę, godzinę itp, ale w sposób mało czytelny np. Sat Mar 2 16:47:28 UTC+0100 2002. Dlatego chcąc uzyskać datę w postaci 22.03.2002 musimy napisać prosty skrypt:

<script language="javascript">
var data=new Date()
var dzien=data.getDate()
var miesiac=data.getMonth()
var rok=data.getYear()
document.write(dzien + "-" + miesiac + "-" + rok);
</script>



W efekcie mamy datę w postaci 22-11-2002, ale w przypadku pierwszych dni miesiąca, oraz pierwszych miesięcy nie uzyskamy wyniku 01-02-2002 a 1-2-2002 chyba, że użyjemy tablic, ale o tym za chwilę. Przypuśćmy, że chcemy napisać skrypt wyświetlający dzień tygodnia jako nazwę oraz miesiąc i rok, będziemy musieli użyć wcześniej wspomnianych tablic.

<script language="javascript">
var data=new Date()
var dzien=data.getDay()
var dzienmiesiaca=data.getDate()
var miesiac=data.getMonth()
var rok=data.getYear()
var dzientygodnia=new Array("Niedziela","Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota")
var nazwamiesiaca=new Array("Styczen", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec", "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień")
document.write(dzientygodnia[dzien]+"-"+dzienmiesiaca+"-"+nazwamiesiaca[miesiac]+"-"+rok)
</script>



Na koniec możemy cały skrypt podpiąć do pliku np. "data.js" i wstawić na stronę dwoma linijkami:

<script src="data.js">
</script>



Tym miłym akcentem ;-) kończę ten artykuł, a dla bardziej ambitnych polecam poniższą tabelę.

 

Metoda Zakres wartości Opis
ObiektDate.getTime() 0-... Liczba sekund od dnia 01-01-1970 od godziny 00:00:00 czasu Greenwitch
ObiektDate.getYear() 70-... Bieżący rok
ObiektDate.getMonth() 0-11 Bieżący miesiąć 0-styczeń
ObiektDate.getDate() 1-31 Bieżący dzień miesiąca
ObiektDate.getDay() 0-6 Bieżący dzień tygodnia 0-niedziela
ObiektDate.getHours() 0-23 Bieżąca godzina dnia
ObiektDate.getMinutes() 0-59 Bieżąca minuta
ObiektDate.getSeconds() 0-59 Bieżąca sekunda
Ocena 2.49/5 (49.87%) (454 głosów)

Komentarze:


  • Dodał: Gość data: 2012-01-13
    a co z chrome - jakiś bug w przeglądarce?
    jeżeli chodzi o 13 styczeń 2012 to miesiąc to 0 a rok 112


Dodaj komentarz:


Temat:
Twój nick:
Komentarz:
 

Prosimy o kulturę wypowiedzi. Komentarze zawierające niecenzuralne zwroty, bądź obrażające inne osoby będą usuwane. Kod HTML w wypowiedziach jest niedozwolony. Wydawca nie odpowiada za treść komentarzy.