No entiendo por qué una fecha es buena y el resto muestra "Fecha no válida".


const blocksDate = document.querySelectorAll(".roadmap__time"); blocksDate.forEach((block) => { const dateString = block.innerHTML; const dateBlock = new Date(dateString); const currentDate = new Date(); console.log(dateBlock); }); <span class="roadmap__time">1 maja, 2022</span> <span class="roadmap__time">16 czerwca, 2022</span> <span class="roadmap__time">3 marca, 2022</span> <span class="roadmap__time">3 lipca 2022</span> <span class="roadmap__time">9 lipca 2021</span>La razón por la que 1 mar(ca) funciona es que Date.parse solo ve los primeros 3 caracteres y adivina marzo
Aquí hay un script que convierte en ambos sentidos
const months = ["STY", "LUT", "MAR", "KWIE", "MAJ", "CZE", "LIP", "SIE", "WRZ", "PAZ", "LIS", "GRU"] const options = { year: "numeric", month: "long", day: "numeric" }; const blocksDate = document.querySelectorAll(".roadmap__time"); blocksDate.forEach((block) => { const dateString = block.textContent; const [_, dd, mmm, yyyy] = dateString.match(/(\d{1,2}) (\w{3})\w+,? (\d{4})/) console.log(dd, mmm, yyyy) const dateBlock = new Date(yyyy, months.indexOf(mmm.toUpperCase()), dd, 15, 0, 0, 0); console.log(dateBlock); const plDate = dateBlock.toLocaleDateString("pl", options) console.log(plDate) }); <span class="roadmap__time">1 Maja, 2022</span> <span class="roadmap__time">16 czerwca, 2022</span> <span class="roadmap__time">3 marca, 2022</span> <span class="roadmap__time">3 lipca 2022</span> <span class="roadmap__time">9 lipca 2021</span>