簡體   English   中英

從 jquery 日期選擇器中提取月份

[英]Extract month from jquery datepicker

我有一個 jquery 日期選擇器,它將日期格式化為 dd/mm/yyyy。 當有人輸入日期、選擇日期並加載時,我需要顯示月份名稱。 我正在努力爭取這個月。 myDate 是附加到日期選擇器的文本框。 我有這個:

var date = new Date($("#myDate").val());
alert(date.getDate());
alert(date.getMonth());
alert(date.getDay());
alert(date.getYear());

當我以 2011 年 7 月 18 日的日期運行它時,我得到 5 個月,4 個日,7 個日期和 112 個年,這很奇怪。 我究竟做錯了什么? 我需要做的就是將一個月 label 動態更改為使用日期選擇器選擇/輸入的月份,即七月......

要從 datepicker 獲取日期,您應該使用$("#myDate").datepicker("getDate") 雖然您目前正在構建一個 JavaScript 日期 object ,但它可能會以錯誤的方式解釋 the.val() 。

使用

$('#myDate').datepicker('getDate')

將以更安全的方式為您提供 JavaScript 日期 object。 此外,getMonth() 將返回索引為零的月份,因此 July 將返回為“6”。 要返回全年,您應該使用:.getFullYear()

很有可能 javascript “new Date()” 沒有以正確的日期格式解析它。 如果您正確設置了日期選擇器的日期形式,那么當您使用它的“getDate”方法時,小部件將為您完成工作。

因此,您的代碼將變為:

var date = $("#myDate").datepicker('getDate');
alert(date.getDate());         // Day of the month
alert(date.getMonth());        // Month with a zero index
alert(date.getDay());          // Day of the week
alert(date.getFullYear());     // The "full" year, e.g. 2011

// 更新了 select 列表的解決方案

從下拉列表中選擇正確的值很大程度上取決於您設置值的方式。 即如果值是:

<select id="MySelect">
  <option value="1">Jan</option>
</select>

然后你可以簡單地做:

$('#MySelect').val((date.getMonth() + 1));

這將 select 指定的月份。 但是,如果您的值是月份名稱的一些變體,即:

<select id="MySelect">
  <option value="Jan">Jan</option>
</select>

然后你需要一個 function 到 map 從月份號到它的名字,比如:

var months = ['Jan', 'Feb', 'Mar', ...etc }

function getMonthShortName(month) {
    return months[month];
}

$('#MySelect').val(getMonthShortName(date.getMonth()));

暫無
暫無

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

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