从jquery UI日历中选择一个月的所有工作日
问题描述:
我想从Jquery UI日历中选择一个月时获取一个月的所有工作日。从jquery UI日历中选择一个月的所有工作日
下面是从date到date的选择代码,但是我需要的是,当我选择一个月时,它应该打印整个月份的所有平日名称。
eg: monday,tuesday,wednesday,thursday,friday,saturday,sunday
monday,tuesday,wednesday,thursday,friday,saturday,sunday
monday,tuesday,wednesday,thursday,friday,saturday,sunday
monday,tuesday,wednesday,thursday,friday,saturday,sunday
从所选月份的开始日期日期到结束月份。
<input id="from" />
<input id="to" />
<button id="getBetween">Get Between Dates</button>
<div id="results"></div>
$("#from").datepicker();
$("#to").datepicker();
$('#getBetween').on('click', function() {
var start = $("#from").datepicker("getDate"),
end = $("#to").datepicker("getDate"),
currentDate = new Date(start),
between = []
;
while (currentDate <= end) {
between.push(new Date(currentDate));
currentDate.setDate(currentDate.getDate() + 1);
}
$('#results').html(between.join('<br> '));
});
答
下面的代码片段将列出所选日期范围内的所有日子。我已经删除了代码片段的日期选择器引用。从你的问题中不清楚的是,日期名称是否应该分解成几个星期。
function getDayName(date) {
var dayNames = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'];
return dayNames[date.getDay()];
}
$('#getBetween').on('click', function() {
var start = new Date($("#from").val()),
end = new Date($("#to").val()),
between = [];
while (start <= end) {
between.push(getDayName(start));
start.setDate(start.getDate() + 1);
}
$('#results').html(between.join('<br> '));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
from start date date of a selected month to end month.
<input id="from" value="2017-08-01"/>
<input id="to" value="2017-08-31"/>
<button id="getBetween">Get Between Dates</button>
<div id="results"></div>
答
这里可以对@Thuhs答案检查意见后修改的答案。这里工作jsfiddle。
这个想法是通过getDay()
得到星期几,并从具有星期名称的数组中返回该值。小插件moonth-picker
返回该月的第一天。函数new Date(selectedDate.getFullYear(), selectedDate.getMonth() + 1, 0, 23, 59, 59)
称呼最后一天。
$("#InlineMenu").MonthPicker({
// SelectedMonth: '04/' + new Date().getFullYear(),
OnAfterChooseMonth: function(selectedDate) {
\t
\t var currentDate = selectedDate, \t
lastDayOfMonth = new Date(selectedDate.getFullYear(), selectedDate.getMonth() + 1, 0, 23, 59, 59),
weekdays = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],
between = [];
\t \t \t \t
while (currentDate <= lastDayOfMonth) {
between.push(weekdays[new Date(currentDate).getDay()]);
currentDate.setDate(currentDate.getDate() + 1);
}
$('#results').html(between.join(', '));
}
});
<script type="text/javascript" src="//code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript" src="//code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
<link rel="stylesheet" type="text/css" href="//code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css">
<link rel="stylesheet" type="text/css" href="//rawgit.com/KidSysco/jquery-ui-month-picker/v3.0.0/demo/MonthPicker.min.css">
<script type="text/javascript" src="//rawgit.com/digitalBush/jquery.maskedinput/1.4.1/dist/jquery.maskedinput.min.js"></script>
<script type="text/javascript" src="//rawgit.com/KidSysco/jquery-ui-month-picker/v3.0.0/demo/MonthPicker.min.js"></script>
<div id='InlineMenu' style="float: left; margin-right: 20px;"></div>
<div id="results" style="padding: 20px;"></div>
我编辑你想要的标题为更好地理解......你可能会在编辑上面,这样你就不会得到进一步的反对票。另请检查我的新答案:https://stackoverflow.com/a/45861167/3001970,并使其正确,如果它适合你! – wittich