16 de octubre de 2009

oct
16
2009

Tratando de solucionar los problemas de las fechas


Parecería que hay problemas con las fechas de las entradas. Si esto es un error circunstancial de Blogger o un cambio, nadie lo sabe. Por lo que puede verse, ha desaparecido uno de los formatos que podían elegirse en la Configuración | Formato | Formato de cabecera de fecha, el que los mostraba así: 16-oct-2009.


Entonces, quien emplea algún script para mostrar esa fecha de otro modo, ya sea como un calendario o como un texto formateado verán que la fecha o parte de ella se ve como undefined.

Hay muchas variantes de esos scripts y para solucionar el problema, no hay más remedio que entenderlos un poco. Este es un modelo standard:
var lafecha = cual.split('-');
fday = "<div class='caledia'>"+lafecha[0]+"</div>";
fmonth = "<div class='calemes'>"+lafecha[1]+"</div>";
fyear = "<div class='caleanio'>"+lafecha[2]+"</div>";
La primera línea separa la fecha en partes, usando, en este caso, un guión como separador. Es decir, si la fecha es 16-oct-2009, tendremos tres datos independientes:
el dia es lafecha[0] o sea 16
el mes es lafecha[1] o sea 10
el año es lafecha[2] o sea 2009
Si cambiamos el formato de la fecha (o nos fuerzan a hacerlo), deberemos cambiar el script para adaptarlo:

Si usamos 16/10/2009 (dia/mes/año) el separador que debemos buscar es la barra inclinada y el orden de los datos será: el dia es lafecha[0], el mes es lafecha[1] y el año es lafecha[2]

Si usamos 10/16/2009 (mes/dia/año) el separador que debemos buscar es la barra inclinada y el orden de los datos será: el mes es lafecha[0], el dia es lafecha[1] y el año es lafecha[2]

Si usamos 10.16.2009 (mes/dia/año) el separador que debemos buscar es un punto y el orden de los datos será: el mes es lafecha[0], el dia es lafecha[1] y el año es lafecha[2]

Si usamos 2009/10/16 (año/mes/dia) el separador que debemos buscar es la barra inclinada y el orden de los datos será: el año es lafecha[0], el mes es lafecha[1] y el día es lafecha[2]

Si usamos 2009-10-16 (año/mes/dia) el separador que debemos buscar es un guión y el orden de los datos será: el año es lafecha[0], el mes es lafecha[1] y el dia es lafecha[2]

En todos estos casos, el mes ya no se muestra como texto sino como un número así que deberemos agregar algo más para convertirlo:
var mes=new Array();
mes[1]="ene"; mes[2]="feb"; mes[3]="mar"; mes[4]="abr"; mes[5]="may"; mes[6]="jun";
mes[7]="jul"; mes[8]="ago"; mes[9]="sep"; mes[10]="oct"; mes[11]="nov"; mes[12]="dic";
El mes entonces será mes[lafecha[0]] o lafecha[X] dependiendo de cual sea el dato que la contenga

Si usamos el formato 16 octubre 2009 (dia/mes/año) el separador que debemos buscar es la barra inclinada y el orden de los datos será: el dia es lafecha[0], el mes es lafecha[1] y el año es lafecha[2]

Y deberemos "cortar" el texto del mes si sólo queremos usar tres caracteres para mostrarlo:
lafecha[1].substring(0,3));

Demasiadas variantes, ¿verdad? Me limito entonces a un modelo concreto, modificando el script de esta entrada. Selecciono entonces un nuevo formato de fecha en la Configuración de Blogger: elijo 16/10/2009 (dia/mes/año) y espero que dure y no la eliminen:
<script type='text/javascript'>
//<![CDATA[
var ultimaFecha;
var mes=new Array();
mes[1]="ene"; mes[2]="feb"; mes[3]="mar"; mes[4]="abr"; mes[5]="may"; mes[6]="jun";
mes[7]="jul"; mes[8]="ago"; mes[9]="sep"; mes[10]="oct"; mes[11]="nov"; mes[12]="dic";
function calendario(cual) {
if (cual == "") { cual = ultimaFecha; }
var lafecha = cual.split('/');
verCero=lafecha[0].substr(0,1); if (verCero == "0") { lafecha[0]=lafecha[0].substr(1) }
fday = "<div class='caledia'>"+lafecha[0]+"</div>";
fmonth = "<div class='calemes'>"+mes[parseFloat(lafecha[1])]+"</div>";
fyear = "<div class='caleanio'>"+lafecha[2]+"</div>";
document.write(fday+fmonth+fyear);
ultimaFecha = cual;
}
//]]>
</script>
Un detalle extra. El problema, también se evita eliminando <data:post.dateHeader/> y cambiando el dato a leer por <data:post.timestamp/> tal como se muestra en esta entrada.



Más Post Relacionados:



No encontrastes lo que Buscabas ? GratisJuegos21

0 comentarios on "Tratando de solucionar los problemas de las fechas"

Agrega tu Comentario sobre el funcionamiento del Juego
:)) ;)) ;;) :D ;) :p :(( :) :( :X =(( :-o :-/ :-* :| 8-} :)] ~x( :-t b-( :-L x( =))

Deja tu Mensaje:

No se Permiten enlaces en los nombres, los enlaces se escriben en los comentarios:
Puedes usar

<a href="URL">NOMBRE</a>

<b>NEGRITA</b>

 

Gratis juegos21 | Copyright © 2009 | Todos los Derechos Reservados