[SOLUCIONADO]Calendario, Error o casualidad...

En un filtro, tengo un ef_editable_fecha, para validar que no sea lunes la fecha seleccionada; basado en el ejemplo de toba referencia que a diferencia es sobre un ML.

El problema es que casualmente cuando seleccionó de la segunda semana de Enero o Abril…, para el día domingo y lunes, la función fecha.getDay() me retorna un valor erroneo, ya que debe retornar 0 1 respectivamente (ver grafica adjunta).

Le hemos dado vueltas, pero no encontramos la lógica del problema, ya que en los demás casos funciona correctamente.

<?php class extension_filtro extends toba_ei_formulario { function extender_objeto_js() { echo " {$this->objeto_js}.evt__pln_fecha_inicio__validar = function () { var lunes = 1; var ef_fecha = this.ef('pln_fecha_inicio').get_estado(); var array_fecha = ef_fecha.split('/'); var ano = parseInt(array_fecha[2]); var mes = parseInt(array_fecha[1])-1; //restamos uno porque la función trabaja lo meses del 0 al 11 var dia = parseInt(array_fecha[0]); var fecha = new Date(ano,mes,dia); alert(fecha.getDay()); if (fecha != null && fecha.getDay() != lunes) { this.ef('pln_fecha_inicio').set_error('Para Planta debe elegir un día Lunes'); return false; } return true; } "; } } ?>

Mil Gracias por su ayuda.


error calendario.png

error calendario.png

Fijate si puede ser porque internamente toba guarda las fechas separadas con “-”, y no con “/”.
En algún momento tuve algún problema con este tipo de cosas relacionadas con fechas (aunque no con el ef_fecha, salvo que para inicializarlo con un valor por código, debés hacerlo en el formato MM-DD-YYYY).
Espero que te sirva el dato.

Martín,
A JS, llega bien el valor y con el split ‘/’, los separa bien
si le cambio el formato, el new Date(MM-DD-YYYY), deja de reconocer los valores y el error pasa a NaN, ya que el formato que espera la funcion es (anyo, mes, dia)

Gracias por responder

Hola Jhon,

el metodo fecha (http://desarrollotoba.siu.edu.ar/toba_editor_trunk/doc/api_js/ef_editable_fecha.html#fecha) ya te devuelve un objeto Date, estas haciendo trabajo de mas.

De todas maneras, fijate como te esta quedando el valor para el mes… porque ahi hay algo raro, pareciera que te esta tomando la fecha como si fuera Marzo en lugar de Abril.

Saludos

Richar,
El problema era que la función parseInt, me estaba alterando el valor; lo soluciones utilizando la propiedad .fecha();

Mil gracias