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

Błąd javascript na urządzeniach mobilnych - jak to poprawić

VPS Starter Arubacloud
0 głosów
307 wizyt
pytanie zadane 23 maja 2022 w JavaScript przez Piotr Popławski Użytkownik (610 p.)

Mam problem z wyświetlaniem danych na urządzeniach mobilnych, konkretnie telefonie :(

W <div id="name"> </div> wyświetlam wynik jakiegoś działania. Na komputerze działa wszystko poprawnie, na telefonie pojawia się błąd. Nie mogę dojść do tego gdzie może być błąd czy też inna przyczyna takiej sytuacji.

fragment kodu:

const  data_do = new Date(Number(r[0])+','+Number(r[1])+','+Number(r[2]));

  //dodanie ilości dni
   data_do.setDate(data_do.getDate() + Number(tab[2]));

//wyswietlenie informcaji
        document.getElementById('name').innerHTML= 'Hente dato: <strong>'+ data_od_+ '</strong>. Levere tilbake dato: <strong>' + data_do_+ '</strong>' ;

Poniżej dołączam fragmenty ekranów z komputera i telefonu

Dziękuję za podpowiedzi.

Na komputerze:

na telefonie

 

komentarz 23 maja 2022 przez overcq Pasjonat (21,960 p.)

Dodałeś za mały kontekst:

  • Skąd się biorą data_od_ i data_do_ względem data_od i data_do?
  • Jaką wartość ma tab[2]?
  • Czy data_do po utworzeniu ma poprawną wartość?

Jakkolwiek przypuszczam, że setDate dostaje liczbę większą od 31.

komentarz 23 maja 2022 przez Piotr Popławski Użytkownik (610 p.)
  • Skąd się biorą data_od_ i data_do_ względem data_od i data_do?

daty są pobierane z formularza i formatowane, tak by można na nich wykonać działania, następnie sprawdzane są wartości dnia i miesiąca, jeśli jest <=9 to do cyfry dodaję zero, tak by format był "2022-05-09"

  • Jaką wartość ma tab[2]? - to ilośc dni o które ma być policzona data_do
  • Czy data_do po utworzeniu ma poprawną wartość? - tak sprawdzałem np: poprzez console i jest petarda. 

Nie wiem jak bym kombinował to na komputerze jest ok, na telefonie pojawia się NaNaNa.... :(

 

komentarz 23 maja 2022 przez overcq Pasjonat (21,960 p.)
Wyświetl sobie wartości pośrednie obliczeń, to znajdziesz miejsce, gdzie się pojawia wartość NaN.
komentarz 23 maja 2022 przez VBService Ekspert (255,440 p.)
edycja 23 maja 2022 przez VBService

BTW,

new Date(dateString);

 

lub


new Date(rokInt, indeksMiesiącaInt, dzieńInt);

więc wystarczy

 

const  data_do = new Date(Number(r[0])+','+Number(r[1])+','+Number(r[2]));

na

const data_do = new Date(`${r[0]}-${r[1]}-${r[2]}`);

lub

const data_do = new Date(r[0], r[1], r[2]);

 

komentarz 23 maja 2022 przez VBService Ekspert (255,440 p.)

Czy data_do po utworzeniu ma poprawną wartość? - tak sprawdzałem np: poprzez console i jest petarda. 

więc błąd pewnie występuje  przy "przypisywaniu" wartości do zmiennych data_od_  data_do_ 

komentarz 23 maja 2022 przez Piotr Popławski Użytkownik (610 p.)
tak też myślałem, jednak ten sam kod jest wykonywany na komputerze i na telefonie. Na komputerze wyświetla mi datę, na telefonie nie ;(

1 odpowiedź

+2 głosów
odpowiedź 24 maja 2022 przez Comandeer Guru (604,400 p.)

Jeśli mobilny to iPhone, to prawdopodobnie chodzi o to, co przekazujesz do konstruktora Date. iPhone ma Safari a ten przyjmuje daty tylko w formacie ISO-8601, czyli w Twoim wypadku RRRR-MM-DD (np. 2022-06-11).

1
komentarz 24 maja 2022 przez spamator12 Nałogowiec (28,230 p.)
hmm nad tym to bym dlugo myslal :P

Podobne pytania

0 głosów
0 odpowiedzi 525 wizyt
0 głosów
0 odpowiedzi 138 wizyt
pytanie zadane 19 października 2019 w JavaScript przez bulgotnik86 Gaduła (3,040 p.)
0 głosów
1 odpowiedź 233 wizyt

92,839 zapytań

141,780 odpowiedzi

320,848 komentarzy

62,171 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.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...