簡體   English   中英

Javascript 或 jQuery 中的日期、月份和年份

[英]Date,Month and year in Javascript or jQuery

對於出生日期,我有 3 個日、月和年下拉列表的 javascript 代碼,如下所示:

var monthtext = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec'];

function populatedropdown(dayfield, monthfield, yearfield) {
    var today = new Date()
    var dayfield = document.getElementById(dayfield)
    var monthfield = document.getElementById(monthfield)
    var yearfield = document.getElementById(yearfield)
    for (var i = 0; i < 31; i++)
        dayfield.options[i] = new Option(i, i + 1)
    dayfield.options[today.getDate()] = new Option(today.getDate(), today.getDate(), true, true) //select today's day
    for (var m = 0; m < 12; m++)
        monthfield.options[m] = new Option(monthtext[m], monthtext[m])
    monthfield.options[today.getMonth()] = new Option(monthtext[today.getMonth()], monthtext[today.getMonth()], true, true) //select today's month
    var thisyear = today.getFullYear()
    for (var y = 0; y < 20; y++) {
        yearfield.options[y] = new Option(thisyear, thisyear)
        thisyear += 1
    }
    yearfield.options[0] = new Option(today.getFullYear(), today.getFullYear(), true, true) //select today's year
}

年份按升序顯示 20。 我需要按降序將其設為 100。

如何在 for 循環中更改它? 我嘗試並得到了一個無限循環。

除了 datepicker 之外,是否還有與此類似的 jquery 代碼?

試試這個,未測試:

for (var y = 100; y >= 0; y--) {
    yearfield.options[y] = new Option(thisyear, thisyear)
    thisyear -= 1
}

試試這個功能

function populatedropdown(dayfield, monthfield, yearfield) {
var today = new Date()
var dayfield = document.getElementById(dayfield)
var monthfield = document.getElementById(monthfield)
var yearfield = document.getElementById(yearfield)
for (var i = 0; i < 31; i++)
    dayfield.options[i] = new Option(i, i + 1)
dayfield.options[today.getDate()] = new Option(today.getDate(), today.getDate(), true, true) //select today's day
for (var m = 0; m < 12; m++)
    monthfield.options[m] = new Option(monthtext[m], monthtext[m])
monthfield.options[today.getMonth()] = new Option(monthtext[today.getMonth()], monthtext[today.getMonth()], true, true) //select today's month
var thisyear = today.getFullYear();
for (var y = 0; y < 100; y++) {
    yearfield.options[y] = new Option(thisyear, thisyear)
    thisyear -= 1
}
yearfield.options[0] = new Option(today.getFullYear(), today.getFullYear(), true, true) //select today's year

}

您可以嘗試反向 For 循環。

    for (var y = 100; y >=1; y--) {
    yearfield.options[y] = new Option(thisyear, thisyear)
    thisyear += 1
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM