Tengo 2 cuadros de texto en mi sitio para la fecha de recogida y la fecha de entrega, tanto usando el jquery selector de fecha.

Estoy teniendo problemas a la hora de la caída de valor de fecha a ser un día de anticipación de la fecha de recogida que fue seleccionado.

Aquí es lo que tengo:

$('.pickupDate').change(function() {
    var date2 = $('.pickupDate').datepicker('getDate', '+1d'); 
    $('.dropoffDate').datepicker('setDate', date2);
});

El de arriba se va a ejecutar, pero el valor de la caída de los textbox va a coincidir con la recogida de valor en lugar de ser un día de anticipación. por ejemplo: si yo seleccione 01-01-2010 el código anterior devuelve 01-01-2010 en el dejar el cuadro en lugar de 02-01-2010.

Los pensamientos?

Gracias por tu ayuda,
Rica

3 Comentarios

  1. 67

    Intente esto:

     $('.pickupDate').change(function() {
      var date2 = $('.pickupDate').datepicker('getDate', '+1d'); 
      date2.setDate(date2.getDate()+1); 
      $('.dropoffDate').datepicker('setDate', date2);
    });
    • Gracias por que. Trabajó un placer 🙂
    • Lo anterior funciona para mí también. Pero, ¿por qué el «+1d» en la línea 2? He quitado «+1d» desde la segunda línea y funciona también.
    • gran solución, juzgado 10 otras formas de incremento de la fecha en javascript y ninguno funcionó.
    • en la línea 2 no se necesita selector de fecha getDate
    • ¿Sabe usted por qué si tratando de simplificar la fusión de las líneas tercera y cuarta en algo como $('.dropoffDate').datepicker('setDate', date2.getDate()+1); se produce un error y se agregan 2 días en vez de 1? Demostración: jsfiddle.net/507Lwkeb
    • Lo que puedes hacer es $('.dropoffDate').datepicker('setDate', "+1d");. Ver el setDate documentación para otras opciones aquí.
    • Sería necesario para 10 días ? que comandos tengo que cambiar entonces?
    • La línea de date2.setDate(date2.getDate()+1); puede ser modificado para date2.setDate(date2.getDate()+10);
    • Tks usted! funciona muy bien
    • Uso this objeto en lugar de seleccionar de nuevo (.pickupDate). como: var date2 = $(this).datepicker('getDate');

  2. 8

    Esta respuesta realmente me ayudó a empezar (noob) – pero me encontré con un comportamiento extraño cuando me establezca una fecha de inicio de 12/31/2014 y añade +1 al valor predeterminado de la fecha de finalización. En vez de darme una fecha de finalización de 01/01/2015 yo estaba 02/01/2015 (!!!). Esta versión analiza los componentes de la fecha de inicio para evitar este final de año rarezas.


     $( "#date_start" ).datepicker({
    
       minDate: 0,
       dateFormat: "mm/dd/yy",
    
       onSelect: function(selected) {
             $("#date_end").datepicker("option","minDate", selected); // mindate on the End datepicker cannot be less than start date already selected.
             var date = $(this).datepicker('getDate');
             var tempStartDate = new Date(date);
             var default_end = new Date(tempStartDate.getFullYear(), tempStartDate.getMonth(), tempStartDate.getDate()+1); //this parses date to overcome new year date weirdness
             $('#date_end').datepicker('setDate', default_end); //Set as default                           
       }
    
     });
    
     $( "#date_end" ).datepicker({
    
       minDate: 0,
       dateFormat: "mm/dd/yy",
    
       onSelect: function(selected) {
         $("#date_start").datepicker("option","maxDate", selected); // maxdate on the Start datepicker cannot be more than end date selected.
    
      }
    
    });
    • Esta respuesta trabajó para mí. El aceptó respuesta no trabajo. Supongo que depende de qué versión de datepicker tal vez? De todos modos, Gracias por esto!
  3. 4

    El datepicker(‘setDate’) establece la fecha en la datepicket no en el de entrada.

    Debe agregar la fecha y la puso en la entrada.

    var date2 = $('.pickupDate').datepicker('getDate');
    var nextDayDate = new Date();
    nextDayDate.setDate(date2.getDate() + 1);
    $('input').val(nextDayDate);
    • Tuve que antes, pero cuando lo he usado sólo una salida como ‘Sun Jan 17 de 2010 00:00:00 GMT+0000 (GMT Hora Estándar)’ en lugar de ’17-01-2010′ incluso si especifica una dateformat opción. Muy extraña. Gracias por la ayuda, aunque.

Dejar respuesta

Please enter your comment!
Please enter your name here