使用jquery获取当前月份和日期

时间:2012-08-26 09:48:26

标签: javascript jquery razor

我有两个持有数月和数年的下拉列表......

$(document).ready(function () {               
     $('#Months option:eq(' + (new Date).getMonth() + ')').prop('selected', true);
      alert((new Date).getMonth());        
     $('#Years option:eq(' + (new Date).getFullYear() + ')').prop('selected', true);
      alert((new Date).getFullYear());
});

我上面编写了JQuery脚本,这样当我的程序运行时,下拉列表中的选定值必须是当前月份和年份。

但是当我执行程序时.. 警报给出7和2012 ..但在我看来当前月份被选中但当前年份不是为什么?如何让我的下拉列表选择当前年份?

3 个答案:

答案 0 :(得分:22)

<强>的jQuery

var d = new Date(),

    n = d.getMonth(),

    y = d.getFullYear();

$('#months option:eq('+n+')').prop('selected', true);

$('#years option[value="'+y+'"]').prop('selected', true);

<强> HTML

​<select id="months">
    <option value="1">January</option>
    <option value="2">February</option>
    <option value="3">March</option>
    <option value="4">April</option>
    <option value="5">May</option>
    <option value="6">June</option>
    <option value="7">July</option>
    <option value="8">August</option>
    <option value="9">September</option>
    <option value="10">October</option>
    <option value="11">November</option>
    <option value="12">December</option>
</select>
<select id="years">
    <option value="2011">2011</option>
    <option value="2012">2012</option>
    <option value="2013">2013</option>
</select>

<强> DEMO

答案 1 :(得分:2)

从0(1月)到11(12月)的整数返回月份:请参阅http://www.java2s.com/Tutorial/JavaScript/0240__Date/DategetMonth.htm

因此当前月份(8月)将返回7.为了能够与通常的月份索引(意味着1到12)匹配,请使用((new Date()).getMonth() + 1)

正如评论中指出的那样,我误解了这个问题。月份是正确的,因为几个月的基于零的数组和jquery选择器:eq()也是从零开始的。

然而,正如其他答案中所指出的,返回的年份与匹配jquery选择器中第n个元素的:eq()不匹配。使用建议option[value=' + (new Date).getFullYear() + ')'会更好。

答案 2 :(得分:1)

jQuery中选择器的:eq(N)部分选择匹配集中的第N个元素(包括第0个)(此时将为#Years option)。因此,除非您在Years下拉列表中有更多2012选项,否则这将无效。

最好根据它的值选择选项:option[value=2012]

just use $("#Years").val(2012) ,它更具可读性且代码更少。

相关问题