Autor Zpráva
ondra256
Profil
Ahoj,

řeším problém s vytvořením datumu. Vytvářím datum ze stringu. Na všech zařízeních mě tu funguje (Windows, Linux, Notebook, desktop, android), ale na IPhone zařízeních to vyhodí chybu: "Invalid date".

const date = new Date('2022-07-04 15:29:00');
alert(date);


Nemáte někdo tušení čím by to mohlo být? Je nějaký lepší způsob jak ze stringu vytvořit datum, který by fungoval na 100%?
Radek9
Profil
ondra256:
Protože neodpovídá normě (zjednodušená verze ISO 8601). Oddělovač data a času má být správně T, nikoli mezera:
const date = new Date('2022-07-04T15:29:00')

Pokud si chceš být stoprocentně jistý, tak je ještě vhodné doplnit časovou zónu, např. Z pro UTC:
const date = new Date('2022-07-04T15:29:00Z')
nebo +HH:mm pro jinou:
const date = new Date('2022-07-04T15:29:00+02:00')

Vhodnější je ovšem čas nevytvářet ze stringu, ale z jednotlivých čísel:
const date = new Date(2022, 6, 4, 15, 29, 0) // Pozor, měsíce se indexují od 0, ne od 1 (6 = červenec, 7 = srpen)

Pokud trváš na vlastním formátu, tak bych doporučil použít spíše nějakou knihovnu, např. Luxon nebo Moment.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0