[英]Jquery Datepicker remove days of previous or next month from the current month
[英]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.