Foros del Web » Programando para Internet » Jquery »

bucle each, rendimiento y procesado de fechas con jquery o javascript

Estas en el tema de bucle each, rendimiento y procesado de fechas con jquery o javascript en el foro de Jquery en Foros del Web. Tengo este codigo en mi web Código HTML: <time datetime= "2015-01-15" > <div class= "month" > </div> <div class= "day" > </div> <div class= "sem" ...
  #1 (permalink)  
Antiguo 01/01/2015, 19:57
 
Fecha de Ingreso: marzo-2005
Mensajes: 10
Antigüedad: 19 años, 7 meses
Puntos: 0
Pregunta bucle each, rendimiento y procesado de fechas con jquery o javascript

Tengo este codigo en mi web

Código HTML:
<time datetime="2015-01-15">
<div class="month"></div>
<div class="day"></div>
<div class="sem"></div>
</time> 
Uso el script moment.js para formatear las fechas y jquery para insertar el mes en el div month, el dia en el div day y el dia de la semana en el div sem.

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
  1. $('time').each(function() {
  2.  
  3.   var t = $(this);
  4.  
  5.   //recojo la fecha del atributo datetime
  6.   var date = t.attr('datetime');  
  7.  
  8.  //selecciono cada div dentro de time
  9.   var day = t.find('.day');  
  10.   var sem = t.find('.sem');
  11.   var month = t.find('.month');
  12.  
  13.  //guardo 3 formatos diferentes para dia mes y dia de la semana con momentjs
  14.   var formatday = moment(date).format("D");  
  15.   var formatsem = moment(date).format("ddd");
  16.   var formatmonth = moment(date).format("MMM");
  17.  
  18.  //escribo el valor formateado en el div correspondiente
  19.   day.text(formatday);
  20.   sem.text(formatsem);
  21.   month.text(formatmonth);
  22. });

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!

Etiquetas: javascript
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:22.