Si es posible, sin bibliotecas de JavaScript o un montón de código torpe, estoy buscando la forma más sencilla de formatear una fecha dentro de dos semanas en el siguiente formato:
13th March 2013
El código que estoy usando es:
var newdate = new Date(+new Date + 12096e5);
document.body.innerHTML = newdate;
que devuelve la fecha y la hora dentro de dos semanas, pero así: miércoles 27 de marzo de 2013 21:50:29 GMT+0000 (hora estándar de GMT)
Aquí está el código en jsFiddle.
¡Cualquier ayuda sería apreciada!
Solución del problema
Tenga en cuenta que esto funciona para los números de día del 1 al 31.
const nth = function(d) {
if (d > 3 && d < 21) return 'th';
switch (d % 10) {
case 1: return "st";
case 2: return "nd";
case 3: return "rd";
default: return "th";
}
}
// test code
const fortnightAway = new Date(+new Date + 12096e5);
const date = fortnightAway.getDate();
const month = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"][fortnightAway.getMonth()];
document.getElementById("date").innerHTML = `In two weeks it will be the ${date}<sup>${nth(date)}</sup> of ${month} ${fortnightAway.getFullYear()}`;
// test
const dates = [...Array(32).keys()].slice(1).map(i => `${i}${nth(i)}`)
console.log(dates.join(", "))
sup {
font-size: x-small
}
<span id="date"></span>
No hay comentarios.:
Publicar un comentario