tengo un rango de fecha en el selector, con 2 campo de cada selector de fecha: dat_start y date_end;
todo bien, excepto la marca de tiempo del campo voy a pasar al servidor para realizar la búsqueda; sé JS marca de hora es en ms, pero debería tenerlo /1000…y no puedo encontrar la manera de hacerlo. Aquí está mi código:

<script>
$(function () {
    $("#data_inizio").datepicker({
        altField: '#mod_available_date_id_start',
        altFormat: '@',
        defaultDate: "+1w",
        changeMonth: true,
        numberOfMonths: 1,
        onSelect: function (selectedDate) {
            $("#data_fine").datepicker("option", "minDate", selectedDate);
        }
    });
    $("#data_fine").datepicker({
        altField: '#mod_available_date_id_finish',
        altFormat: '@',
        defaultDate: "+1w",
        changeMonth: true,
        numberOfMonths: 1,
        onSelect: function (selectedDate) {
            $("#data_inizio").datepicker("option", "maxDate", selectedDate);
        }
    });
});
</script>

Gracias a todos, y lo siento por mi mal inglés!

  • Yo no veo ningún problema en hacer en el lado del cliente, pero si usted tiene problemas haciendo allí, no puedes hacer eso en el lado del servidor?
  • el problema es que la consulta de búsqueda es en PHp (marca de tiempo en segundos), pero la marca de hora llegar desde el formulario está en la ms; tengo que dividir /1000 antes de presentar la función de búsqueda

1 Comentario

  1. 9

    Obtener la cadena de fecha seleccionado por el selector y la echó en una fecha:

    var stringyDate = $("#data_inizio").val(); //mm/dd/yyyy
    var dateyDate = new Date(stringyDate);

    Ahora obtener la valueOf() (que devuelve los milisegundos transcurridos desde el 1 de enero de 1970) y dividir por 1000 para obtener el número de segundos a partir de [la misma].

    var ms = dateyDate.valueOf();
    var s = ms / 1000;

    Ejemplo violín: http://jsfiddle.net/QpQ7U/

    Esto ocurra en la fecha de selección, modificar el onSelect función de devolución de llamada en el datepicker de opciones.

    onSelect: function(selectedDate) {
        var v = $(this).val(),
            d = new Date(v);
        if (v.length > 0) {
            $('p#out').text(d.valueOf() + ' divided by 1000 is ' + (d.valueOf() / 1000));
        } else {
            $('p#out').text('No date selected');
        }
    }

    Ejemplo de violín con onSelect: http://jsfiddle.net/QpQ7U/1/

    Para almacenar el valor en un campo oculto, simplemente especificar el campo en el onSelect:

    onSelect: function(selectedDate) {
        var d = new Date(selectedDate),
            s = parseSeconds(selectedDate);
        if (s > 0) {
            //display to user
            $('p#out_inizio').text(d.valueOf() + ' divided by 1000 is ' + s);
            //store in hidden field.
            $('input#out_inizio').val(s);
        } else {
            $('p#out_inizio').text('No date selected');
        }
        //set min date on other picker
        $("#data_fine").datepicker("option", "minDate", selectedDate);
    }

    Ejemplo de violín con campos ocultos: http://jsfiddle.net/QpQ7U/2/

    Que el formato día/mes/año, utilice la dateFormat opción:

    $("#data_inizio").datepicker({
        altField: '#mod_available_date_id_start',
        altFormat: '@',
        dateFormat: 'dd/mm/yy',
        ...
    });

    Ejemplo violín: http://jsfiddle.net/QpQ7U/5/

    • ok! gracias! ¿cómo puedo hacer esto, no haga clic en funciones, pero de modo automático de Selección en datepicker?
    • Simplemente modificar el onSelect de devolución de llamada para hacer lo que quiera con él. Respuesta actualizada.
    • eso es perfecto! lo siento si estoy realmente muy mal, pero yo no puedo ir a otro campo de entrada, en lugar de a <p> (necesito este caus tengo que pasar a través de un formulario, el resultado de esta operación). Gracias de nuevo!
    • Lo otro campo de entrada? Por favor, actualice su OP (o el violín) con el código html y el campo de entrada deberá tener el valor almacenado en.
    • $(‘p#out’), en su ejemplo, poner el resultado de la operación en <p id=»out» />; me gustaría pasar a t a de un <input type=»hidden» id=»fuera»> para utilizarla como parte de la consulta de búsqueda cuando me voy a presentar a la búsqueda…lo siento si no me explique bien, tengo un pobre inglés
    • Respuesta actualizada. Espero que esto ayude.
    • Eso es perfecto! gracias muy muy muy mucho!
    • La última cosa a preguntar: ¿cómo puedo formato de fecha? Si en jquery.la interfaz de usuario.datepicker puedo cambiar el formato de mm/dd/aa dd/mm/aa es un problema.
    • El formato día/mes/año, utilice la dateFormat opción. Respuesta actualizada.
    • hola pete! no, de esta manera no es la correcta (incluso si tratas en tu ejemplo): intente seleccionar 21 de junio, el guión indica que no tienen fecha seleccionada. gracias de nuevo
    • Bueno, tenía que ajustar la fecha de análisis de funciones en el violín. Actualizado a la nueva violín. Respuesta actualizada.
    • Hola pete ahora funciona! thnk usted!
    • ahahahaha, otro problema 🙂 se añade un mes para el resultado 🙂 (si selecciono 21 de junio de 2012 – 26 de junio de 2012, de la gama, los resultados son en 21 de JULIO de 2012-26 de JULIO de 2012, de la gama
    • Ajustado el parseDate función. No más de un mes de descanso. Actualizado el violín a jsfiddle.net/QpQ7U/5
    • Sí! muchas gracias! genial!!!
    • hola pete! su sugieren funciona muy bien; yo tengo otra duda: tengo 2 fecha de pre-compilado, así que no tengo la selección; ¿cómo puedo hacer el mismo trabajo (/1000 de la marca de tiempo)? esto es una prueba enlace: iviaggidiatlantide.es.en la nube.seeweb.es/rebaja/calendario/…
    • Es el mismo principio. Asegúrese de que sus valores están en un Date tipo de datos, el uso de la valueOf método para obtener los milisegundos desde el 1 de enero de 1970, y luego se divide por 1000 para obtener los segundos desde el 1 de enero de 1970.
    • Pete: gracias por responder…lo siento bu yo no soy un programador, así que siempre es difícil para mí entender cómo y dónde aplicar su sugieren, sin ejemplos…puedes escribir a mí, ¿cómo hacer? gracias..
    • …que yo no puedo llegar a trabajar con pre-compilado fechas…muy malo el problema de no ser un programador 🙂
    • Tal vez estoy mal entendido… es 1340683200000 la «precompilado» valor? Si ese es el caso var from = new Date(1340683200000); va a poner eso en un Date objeto. Otro sabio, por favor aclarar a qué te refieres. El enlace que has publicado no mostrar claramente lo que quieres decir. También, por favor tenga en cuenta que los debates prolongados como estos se hacen mejor en el chat y que esta es una excelente oportunidad para que usted publique otra pregunta. Este sería dejar que otros programadores saben que una nueva pregunta está disponible para contestar.

Dejar respuesta

Please enter your comment!
Please enter your name here