• 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ć

Object Storage Arubacloud
0 głosów
271 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,710 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,710 p.)
Wyświetl sobie wartości pośrednie obliczeń, to znajdziesz miejsce, gdzie się pojawia wartość NaN.
komentarz 23 maja 2022 przez VBService Ekspert (253,340 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 (253,340 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 (601,510 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 400 wizyt
0 głosów
0 odpowiedzi 134 wizyt
pytanie zadane 19 października 2019 w JavaScript przez bulgotnik86 Gaduła (3,040 p.)
0 głosów
1 odpowiedź 171 wizyt

92,576 zapytań

141,426 odpowiedzi

319,651 komentarzy

61,961 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

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!

...