Código HTML:
<time datetime="2015-01-15"> <div class="month"></div> <div class="day"></div> <div class="sem"></div> </time>
El tema es que muestro varios eventos, y cada evento suele contener varias fechas, y repito este código muchas veces en mi página.
Lo que he echo es una funcion con jquery y con .each recorro todos los elementos time de la web.
Código Javascript:
Ver original
$('time').each(function() { var t = $(this); //recojo la fecha del atributo datetime var date = t.attr('datetime'); //selecciono cada div dentro de time var day = t.find('.day'); var sem = t.find('.sem'); var month = t.find('.month'); //guardo 3 formatos diferentes para dia mes y dia de la semana con momentjs var formatday = moment(date).format("D"); var formatsem = moment(date).format("ddd"); var formatmonth = moment(date).format("MMM"); //escribo el valor formateado en el div correspondiente day.text(formatday); sem.text(formatsem); month.text(formatmonth); });
Al final esto me imprime ENE 15 LUN todo dentro de sus divs. Todo ok.
1a pregunta. ¿Esta es una forma óptimizada de hacerlo o no es lo adecuado de cara al rendimiento? ¿hay una forma mejor?
2a pregunta, esto no se como hacerlo. Pongamos que cada evento tiene 3 fechas. Me imprimiría esto:
ENE 15 LUN ENE 16 MAR ENE 17 MIE
Pero yo quisiera esto:
ENE 15 LUN 16 MAR 17 MIE
Es decir, que el mes solo me lo muestre en la primera fecha de cada evento, a no ser que el siguiente día comporte un cambio de mes.
ENE 30 LUN 31 MAR FEB 1 MIE
Gracias!