Pergunta

I am calculating the age from jquery datepicker. But this works when only the date is in(mm/dd/yy) format. I need to get this working in dd/mm/yy.

//Code

$('#dob').datepicker({
    onSelect: function(value, ui) {
        var today = new Date(), 
            dob = new Date(value), 
            age = new Date(today - dob).getFullYear() - 1970;

        $('#age').text(age);
    },
    maxDate: '+0d',
    yearRange: '1920:2010',
    changeMonth: true,
    changeYear: true
});

If i try to set dateFormat: 'mm/dd/yy' in the property this wont work. Any help?

Foi útil?

Solução 2

Try this: http://jsfiddle.net/lotusgodkk/GCu2D/120/

Js:

$('#dob').datepicker({
onSelect: function(value, ui) {
    console.log(ui.selectedYear)
    var today = new Date(), 
        dob = new Date(value), 
        age = ui.selectedYear - 1970; //This is the update

    $('#age').text(age);
},
maxDate: '+0d',
yearRange: '1920:2010',
changeMonth: true,
changeYear: true,
});

If you inspect the ui object in console, you'll see that it stores year,day,month separately. You can access them like ui.selectedDay or selectedYear . Hope this helps.

Outras dicas

Demo Fiddle mm/dd/yy Demo Fiddle dd/mm/yy

jQuery

onSelect: function (value, ui) {
    var today = new Date();
    var format = value.split("/");
    var dob = new Date(format[2], format[0], format[1]);
    var diff = (today - dob);
    var age = Math.floor(diff / 31536000000);
    $('#age').text(age);
},

Reference

Hope it helps....

this answer will work fine for the all the dates as the month starts from 0 in date function. for date format(dd-mm-yy).

var now= new Date();
var year= now.getFullYear();
$('#dob').datepicker({
    onSelect: function (value, ui) {
        var today = new Date();
        console.log(today.getFullYear());
        var format = value.split("-");
        console.log(format[2]);

        var dob = new Date(format[2], format[1]-1, format[0]);
        console.log(dob);
        var diff = (today - dob);
        var age = Math.floor(diff / 31536000000);
        $('#age').text(age);
    },

    dateFormat: 'dd-mm-yy',
    maxDate: '+0d',
    yearRange: '1920:'+year,
    changeMonth: true,
    changeYear: true
});
$("#dob").datepicker({        
    onSelect: function (value, ui) {
    debugger
        var today = new Date();
        var year = today.getFullYear() - ui.selectedYear;
        var month = today.getMonth() - ui.selectedMonth;
        var date = today.getDate() - ui.selectedDay;


        if ((year == 0 && month == 0 && date < 0) || (year == 0 && month < 0) || (year < 0)) {
            $("#lbl6").show();
            $("#age").val("");

        } else if ((year == 0) || (year > 0 && month == 0 && date >= 0) || (year > 0 && month > 0)) {
            $("#age").val(year);

        } else if ((year > 0 && month == 0 && date < 0) || (year > 0 && month < 0)) {
            $("#age").val(year - 1);

        }
    },
    dateFormat: 'dd M y',
    changeMonth: true,
    changeYear: true,
    yearRange: '1900:2020'
});
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top