Foros del Web » Programando para Internet » Jquery »

fechas: sumar restar meses (datepicker)

Estas en el tema de fechas: sumar restar meses (datepicker) en el foro de Jquery en Foros del Web. hola, necesito de su experiencia con el datepicker de jqueryui necesito dos campos: fecha inicio y fecha final. El formato de la fechas debe ser ...
  #1 (permalink)  
Antiguo 19/04/2013, 10:10
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años, 6 meses
Puntos: 23
fechas: sumar restar meses (datepicker)

hola, necesito de su experiencia con el datepicker de jqueryui

necesito dos campos: fecha inicio y fecha final.

El formato de la fechas debe ser yymm, ejemplo: (hoy) 201304 (descartamos dias, solo me interesa mes y año)

al seleccionar una fecha inicio->poner la fecha final +1 mes la fecha seleccionada, ejemplo:

fecha inicio: [201304] (abre el calendario->selecciono cualquier dia)

fecha final [201305] (automaticamente se pone un mes mas)

osea que mi rango es todo el mes que seleccione (04) +1 mes (05) del año 2013

ahora bien,

al seleccionar una fecha final se hara lo contrario->poner la fecha inicio -1 mes la fecha seleccionada, ejemplo:

fecha final [201304] (abre el calendario->selecciono cualquier dia)

fecha inicio [201303] (automaticamente se pone un mes menos)

osea que mi rango es todo el mes que seleccione (04) -1 mes (03) del año 2013

Ahora este el codigo que llevo:

Código Javascript:
Ver original
  1. $("#fecha_inicio").datepicker({
  2.     dateFormat: 'yymm',
  3.     showOn: "button",      
  4.     buttonImage: "../images_icon/datebox_arrow.png",
  5.     buttonImageOnly: true,
  6.     numberOfMonths: 2,
  7.     onSelect: function(selectedDate){
  8.         var fecha_fin = selectedDate; //sumar 1 mes a la fecha seleccionada
  9.         $("#fecha_final").datepicker("option", "minDate", selectedDate);//bloquear que no esconjan en la fecha final una fecha antes de la del inicio
  10.         $("#fecha_final").datepicker("setDate", fecha_fin); //aqui deberia ir la fecha +1 mes
  11.     }
  12. });
  13. $("#fecha_final").datepicker({
  14.     dateFormat: 'yymm',
  15.     showOn: "button",      
  16.     buttonImage: "../images_icon/datebox_arrow.png",
  17.     buttonImageOnly: true,
  18.     numberOfMonths: 2,
  19.     onSelect: function(selectedDate){
  20.         var fecha_inicio = selectedDate; //restar 1 mes a la fecha seleccionada
  21.         $("#fecha_final").datepicker("option", "maxDate", selectedDate); //bloquear que no esconjan en la fecha inicio una fecha despues del final
  22.         $("#fecha_final").datepicker("setDate", fecha_inicio);//aqui deberia ir la fecha -1 mes
  23.     }
  24. });

Pero resulta que al seleccionar fecha inicio por ejemplo 01-04-2013 mi campo contiene: 201304 y como le estoy dando $("#fecha_final").datepicker("option", "minDate", selectedDate); el campo de la fecha final contiene: 256406 osea una fecha rara

y si yo les quito el dateformat: yymm ya nome pone una fecha rara.

entonces en un intento, considerando que la fecha seleccionada es por ejemplo 201304 trate de agregarle el dia, osea:

selectedDate+"01" pero me sigue dando fecha rara.

y lo mas importante es como sumar/restar el mes a las fechas seleccionadas??

seria recomendable usar substr???

gracias

Última edición por catpaw; 19/04/2013 a las 10:15
  #2 (permalink)  
Antiguo 19/04/2013, 11:30
 
Fecha de Ingreso: abril-2013
Ubicación: Never Land
Mensajes: 2
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: fechas: sumar restar meses (datepicker)

y si le das formato a la fecha Date Format= YY-mm
  #3 (permalink)  
Antiguo 19/04/2013, 12:07
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años, 6 meses
Puntos: 23
Respuesta: fechas: sumar restar meses (datepicker)

hola leamsi23

Código Javascript:
Ver original
  1. $("#fecha_inicio").datepicker({
  2.     dateFormat: 'yy-mm',
  3.     showOn: "button",      
  4.     buttonImage: "../images_icon/datebox_arrow.png",
  5.     buttonImageOnly: true,
  6.     numberOfMonths: 2,
  7.     onSelect: function(selectedDate){
  8.         var fecha_fin = selectedDate; //sumar 1 mes a la fecha seleccionada
  9.         $("#fecha_final").datepicker("option", "minDate", selectedDate);//bloquear que no esconjan en la fecha final una fecha antes de la del inicio
  10.         $("#fecha_final").datepicker("setDate", fecha_fin); //aqui deberia ir la fecha +1 mes
  11.     }
  12. });
  13. $("#fecha_final").datepicker({
  14.     dateFormat: 'yy-mm',
  15.     showOn: "button",      
  16.     buttonImage: "../images_icon/datebox_arrow.png",
  17.     buttonImageOnly: true,
  18.     numberOfMonths: 2,
  19.     onSelect: function(selectedDate){
  20.         var fecha_inicio = selectedDate; //restar 1 mes a la fecha seleccionada
  21.         $("#fecha_final").datepicker("option", "maxDate", selectedDate); //bloquear que no esconjan en la fecha inicio una fecha despues del final
  22.         $("#fecha_final").datepicker("setDate", fecha_inicio);//aqui deberia ir la fecha -1 mes
  23.     }
  24. });

Pobre dejando el dateformat: yy-mm

y obtuve:

fecha_inicio [2013-04]
fecha_fin [2018-10]

cuando en fecha fin deberia ser [2013-04]

ya que:

var fecha_fin = selectedDate;

por el momento fecha_fin es igual ala fecha seleccionada, porque aun no le hayo como sumarle/restarle 1 mes

y si el dateformat es yy-mm-dd funciona

gracias
  #4 (permalink)  
Antiguo 19/04/2013, 13:04
Avatar de catpaw  
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años, 6 meses
Puntos: 23
Respuesta: fechas: sumar restar meses (datepicker)

bueno parece que ya funciona, despues de googlear lo que va del dia llegue a este codigo

Código Javascript:
Ver original
  1. $("#fecha_inicio").datepicker({
  2.     dateFormat: 'yymm',
  3.     showOn: "button",      
  4.     buttonImage: "../images_icon/datebox_arrow.png",
  5.     buttonImageOnly: true,
  6.     numberOfMonths: 2,
  7.     onSelect: function(selectedDate){
  8.         var month = selectedDate.substr(4,2);
  9.         var year = selectedDate.substr(0,4);
  10.         $("#fecha_final").datepicker("option", "minDate", new Date(year, month));
  11.         $("#fecha_final").datepicker("setDate", new Date(year, month, 1));
  12.     }
  13. });
  14. $("#fecha_final").datepicker({
  15.     dateFormat: 'yymm',
  16.     showOn: "button",      
  17.     buttonImage: "../images_icon/datebox_arrow.png",
  18.     buttonImageOnly: true,
  19.     numberOfMonths: 2,
  20.     onSelect: function(selectedDate){
  21.         var month = selectedDate.substr(4,2);
  22.         var year = selectedDate.substr(0,4);
  23.         $("#fecha_inicio").datepicker("option", "maxDate", new Date(year, month));
  24.         $("#fecha_inicio").datepicker("setDate", new Date(year, month-1, -1));
  25.     }
  26. });

Aunque encontre la solucion mas al "tin-marin" que por conocimiento de causa, aun necesitare hacer muchas mas pruebas para ver como se comporta.

Si hay alguna otra propuesta es bienvenida

Etiquetas: meses, restar
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 23:18.