example - jquery ui cdn




جكري ديتبيكر-إضافة سنوات (2)

حاول استخدام Date setFullYear و getFullYear :

$("#equipment_purchaseDate").datepicker({
    dateFormat: 'dd/mm/yy',
    onSelect: function(dateStr) {
        var d = $.datepicker.parseDate('dd/mm/yy', dateStr);
        var years = parseInt($("#equipment_warrantyLength").val(), 10);

        d.setFullYear(d.getFullYear() + years);

        $('#equipment_warrentyExpires').datepicker('setDate', d);
    }
});

وإليك مثال عملي: http://jsfiddle.net/andrewwhitaker/Dvd5C/

لقد أضفت عنصر تحكم مسج داتبيكر إلى إحدى صفحات ASP.Net الخاصة بي. تسمح الصفحة للمستخدم بإضافة تفاصيل حول قطعة من المعدات.

ويمكنهم أيضا تحديد التاريخ الذي اشتروا المعدات باستخدام داتبيكر، ثم من القائمة المنسدلة، حدد طول الضمان (أي 1،2،3،4،5 سنوات الخ) التي تأتي مع المعدات. بناء على طول الضمان الذي اختاروه، أحتاج إلى رمز جكري للعمل على تاريخ الضمان سوف تنتهي للمعدات، أي إذا اشترى 21/02/2011، 3 سنوات وارنتي، ثم تنتهي صلاحية الضمان 21/02/2014.

لقد نظرت إلى أمثلة داتبيكر الأخرى على هذا الموقع، ولكن لا يبدو أن أيا منها يظهر كيفية إضافة سنوات إلى تاريخ، وليس فقط كيفية إضافة أيام.

هذا هو رمز بلدي حتى الآن

$('#equipment_purchaseDate').datepicker({ dateFormat: 'dd/mm/yy', onSelect: function (dateStr) {
        var d = $.datepicker.parseDate('dd/mm/yy', dateStr);
        d.setDate(d.getDate() + ($('#equipment_warrantyLength').val() * 365)); //multiple warranty length by 365 to get years, then add to startDate
        $('#equipment_warrentyExpires').datepicker('setDate', d);
    } 
});

ولكن هذا لا يبدو أن تعمل بشكل صحيح.

ان أي ردود فعل يحظى بتقدير كبير.

شكر.


ربما تحتاج إلى تحديد منتقي التاريخ في الحقل الآخر:

$('#equipment_warrentyExpires').datepicker({ dateFormat: 'dd/mm/yy' });
$('#equipment_purchaseDate').datepicker({ dateFormat: 'dd/mm/yy', 
  onSelect: function (dateText, inst) {
      alert(dateText);
  var d = $.datepicker.parseDate('dd/mm/yy', dateText);
      alert(d);
  d.setDate(d.getDate() + ($('#equipment_warrantyLength').val() * 365)+1); 
  //multiple warranty length by 365 to get years, then add to startDate
  $('#equipment_warrentyExpires').datepicker('setDate', d);
  } 
});

لقد غيرت قليلا.





datepicker