• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

[javascript] Zamiana cyfr z funkcji getDay() na napisy

VPS Starter Arubacloud
0 głosów
923 wizyt
pytanie zadane 6 sierpnia 2015 w JavaScript przez Adam Jakś Dyskutant (8,940 p.)
edycja 6 sierpnia 2015 przez Adam Jakś

Witam, robię sobie zegar w js i próbuję zmienić wartość zmiennej 

var weekday = getDay();

czyli dzień tygodnia,  z cyfry na napis i robię to za pomocą tego kodu

if (weekday == 0) {
 weekday = 'Poniedziałek';
} else if (weekday == 1) {
 weekday = 'Wtorek';
} else if (weekday == 2) {
 weekday = 'Środa';
} else if (weekday == 3) {
 weekday = 'Czwartek';
} else if (weekday == 4) {
 weekday = 'Piątek';
} else if (weekday == 5) {
 weekday = 'Sobota';
} else 
 weekday = 'Niedziela'; }

Cały kod skryptu zegara tutaj:


var date = new Date();

var weekday = date.getDay(); 
var day = date.getDate();
var month = date.getMonth();
var year = date.getFullYear();
var hour = date.getHours();
var minutes = date.getMinutes();
var seconds = date.getSeconds();

if (weekday == 0) {
 weekday = 'Poniedziałek';
} else if (weekday == 1) {
 weekday = 'Wtorek';
} else if (weekday == 2) {
 weekday = 'Środa';
} else if (weekday == 3) {
 weekday = 'Czwartek';
} else if (weekday == 4) {
 weekday = 'Piątek';
} else if (weekday == 5) {
 weekday = 'Sobota';
} else 
 weekday = 'Niedziela'; }

No i niestety przy realizacji tegoż skryptu w htmlu- nie działa (nie wyświetla się) żadna z powyższych zmiennych wyodrębnionych od getDate();. Problem naprawia się, gdy usuwam ten kod z instrukcjami warunkowymi (ale wtedy oczywiście przy wypisywaniu zmiennej weekday na stronie, musiałbym zadowolić się cyfrą). Moje pytanie brzmi, co jest nie tak (to mój pierwszy kod w js i zdaję sobie sprawę że błąd mogłem popełnić w czymkolwiek, choćby głupią literówkę a i tak miałbym problemy ze znalezieniem go).

Pozdrawiam.

3 odpowiedzi

+1 głos
odpowiedź 6 sierpnia 2015 przez Arkadiusz Waluk Ekspert (289,150 p.)
wybrane 6 sierpnia 2015 przez Adam Jakś
 
Najlepsza

Po pierwsze to nie masz jednej klamry otwartej. Ostatnie dwie linijki kodu powinny wyglądać tak:

} else {
 weekday = 'Niedziela'; }

Po drugie to dni zaczynają się od niedzieli. Czyli 0 to niedziela, 1 to poniedziałek itd.

A po trzecie to te ify dość kiepsko wyglądają do czegoś tak prostego. O tablicach słyszał?

Ja bym proponował władować dni tygodnia w tablice:

var weekdays=['niedziela', 'poniedziałek', 'wtorek', 'środa', 'czwartek', 'piątek', 'sobota'];

A później żeby pobrać jaki dzień jest wystarczy wstawić numer dnia jako numer indeksu (czyli w Twoim przypadku zmienną weekday), co spowoduje zwrócenie odpowiedniego dnia tygodnia

weekdays[weekday]

Myślę że prościej i ładniej ale rozumiem że dopiero się uczysz dlatego daję sugestię że coś takiego można zrobić inaczej ;)

komentarz 6 sierpnia 2015 przez Adam Jakś Dyskutant (8,940 p.)
Oczywiście, słyszałem o tablicach, jednak nie miałem okazji zastosować ich w praktyce w js, dlatego nie wpadłem na to rozwiązanie. Też mi się nie podobały te if'y i czułem że nadpisuję niepotrzebnie kod.

Dziękuję i pozdrawiam.
komentarz 6 sierpnia 2015 przez Arkadiusz Waluk Ekspert (289,150 p.)
No rozumiem, ale nie przejmuj się z czasem będziesz samemu wpadał na coraz prostsze rozwiązania, to po prostu doświadczenie.

Nie ma za co ;)
+2 głosów
odpowiedź 6 sierpnia 2015 przez Damianoo4444 Bywalec (2,700 p.)
edycja 6 sierpnia 2015 przez Damianoo4444
Cześć, co do kodu nie podpowiem ci bo JS nie znam zbyt dobrze. Moge jedynie zaproponować inny algorytm. Mozna stworzyć tablice napisów i w niej umieścić nazwy dni tygodnia pod odpowiednimi indeksami tablicy. Zaoszczędzi to pare linijek, a i moze zadziała ? ;D

 

Pozdrawiam :)
+2 głosów
odpowiedź 6 sierpnia 2015 przez Comandeer Guru (605,260 p.)
komentarz 6 sierpnia 2015 przez Arkadiusz Waluk Ekspert (289,150 p.)
No to tego nie znałem... Dzięki, znów się czegoś nowego od Ciebie nauczę ;)

Podobne pytania

0 głosów
2 odpowiedzi 496 wizyt
pytanie zadane 8 września 2017 w C i C++ przez Artur Szczypta Nowicjusz (160 p.)
0 głosów
2 odpowiedzi 671 wizyt
pytanie zadane 5 kwietnia 2017 w C i C++ przez AndekQR Użytkownik (880 p.)
0 głosów
2 odpowiedzi 1,020 wizyt
pytanie zadane 18 listopada 2016 w C i C++ przez Don Corleone Obywatel (1,210 p.)

93,023 zapytań

141,986 odpowiedzi

321,290 komentarzy

62,370 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...