2011-01-11 22 views
7

Estoy usando el plugin Jquery UI Datepicker, estoy tratando de obtener el día, mes y año seleccionado del datepicker en diferentes variables (la solución final es asignar los 3 variables a campos ocultos).Cómo ser seleccionado día/mes y año de jquery datepicker

Aquí está el código:

 $(function() { 
     $("#_StartDate").datepicker(
      { 
       onSelect: function(dateText, inst) { 
        var startDate = new Date(dateText); 
        var selDay = startDate.getDay(); 
        alert(selDay); 
       } 
      } 
     ); 
    }); 

He escogido la fecha "1/10/2011" y devuelve "1". Seleccioné la fecha "1/25/2011" y devuelve "2". ¿Qué estoy haciendo mal aquí?

Gracias por su ayuda!

+0

lo jQuery formato está devolviendo la fecha en datetext variable? Eso podría estar arrojando el objeto Date. – Fahad

Respuesta

19

getDay devolver el día de la semana :)

que puede utilizar:

getFullYear para el año
getDate el día del mes
getMonth el mes de la año

Sigue una lista completa de los compradores (a partir de DevDocs):

Date.prototype.getDate() Devuelve el día del mes (1-31) para la fecha especificada de acuerdo con la hora local.
Date.prototype.getDay() Devuelve el día de la semana (0-6) para la fecha especificada de acuerdo con la hora local.
Date.prototype.getFullYear() Devuelve el año (4 dígitos para años de 4 dígitos) de la fecha especificada de acuerdo con la hora local.
Date.prototype.getHours() Devuelve la hora (0-23) en la fecha especificada de acuerdo con la hora local.
Date.prototype.getMilliseconds() Devuelve los milisegundos (0-999) en la fecha especificada de acuerdo con la hora local.
Date.prototype.getMinutes() Devuelve los minutos (0-59) en la fecha especificada según la hora local.
Date.prototype.getMonth() Devuelve el mes (0-11) en la fecha especificada según la hora local.
Date.prototype.getSeconds() Devuelve los segundos (0-59) en la fecha especificada según la hora local.
Fecha.prototipo.getTime() Devuelve el valor numérico de la fecha especificada como el número de milisegundos desde el 1 de enero de 1970, 00:00:00 UTC (negativo para las horas anteriores).
Date.prototype.getTimezoneOffset() Devuelve el desplazamiento de la zona horaria en minutos para la configuración regional actual.
Date.prototype.getUTCDate() Devuelve el día (fecha) del mes (1-31) en la fecha especificada de acuerdo con la hora universal.
Date.prototype.getUTCDay() Devuelve el día de la semana (0-6) en la fecha especificada de acuerdo con la hora universal.
Date.prototype.getUTCFullYear() Devuelve el año (4 dígitos para años de 4 dígitos) en la fecha especificada de acuerdo con la hora universal.
Date.prototype.getUTCHours() Devuelve las horas (0-23) en la fecha especificada de acuerdo con la hora universal.
Date.prototype.getUTCMilliseconds() Devuelve los milisegundos (0-999) en la fecha especificada de acuerdo con la hora universal.
Date.prototype.getUTCMinutes() Devuelve los minutos (0-59) en la fecha especificada de acuerdo con la hora universal.
Date.prototype.getUTCMonth() Devuelve el mes (0-11) en la fecha especificada de acuerdo con la hora universal.
Date.prototype.getUTCSeconds() Devuelve los segundos (0-59) en la fecha especificada de acuerdo con la hora universal.
Date.prototype.getYear() Devuelve el año (generalmente 2-3 dígitos) en la fecha especificada de acuerdo con la hora local. Use getFullYear() ** en su lugar.

+0

Aprende algo nuevo todos los días;) ¡gracias! – TheWebGuy

3

Su único regresar .getDay() (día de la semana 0-6), tiene que hacer algo como:

var selDay = ... 
var selMon = startDate.getMonth(); 
var selYear = startDate.getYear(); 

Referencia: http://www.w3schools.com/jsref/jsref_obj_date.asp

NOTA

Prestar especial atención a lo que se devuelve, getDay() -> 0-6 getMonth() -> 0-11, etc ... todo en la referencia que proporcioné.

0

Para agarrar val del campo de entrada:

var start_date=$('input#start_date').val();