Tengo una función que devuelve la fecha en función de alguna condición (últimos 30 días).
const start = new Date(); start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); const startTime = start.toLocaleString().split(",")[0]; console.log(startTime)En Mac OS, obtengo la salida en formato dd/mm/yyyy (que es el formato deseado).
Pero en Windows, obtengo la salida en mm/dd/yyyy. ¿Cómo puedo hacerlo consistente independientemente de la plataforma? El formato deseado es dd/mm/yyy
Usar toLocaleDateString con configuración regional
La configuración regional en-GB parece lo que quieres aquí
Hice una función más útil y autodescriptiva.
const ddmmyyyy = (d, offset) => { d.setTime(d.getTime() + (3600 * 1000 * 24 * offset)) return d.toLocaleDateString('en-GB') }; console.log( ddmmyyyy(new Date(), -30) )Usar toLocaleDateString con 'en-GB'
const start = new Date(); start.setDate(start.getDate() - 30) const startTime = start.toLocaleDateString('en-GB'); console.log(startTime) function SetShortDateTime(d) { const monthList = [ "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12" ]; const yr = d.getFullYear(); const mnt = monthList[d.getMonth()]; const day = d.getDate() < 10 ? "0" + d.getDate() : d.getDate(); return [day, mnt, yr].join("/"); } console.log(SetShortDateTime(new Date(2021,11,9,10)))