[英]How to set option date as Yesterday Today and Tomarrow?
i am trying to set option as date yesterday, today , tomorrow, i am trying to implement below code its working but its not showing yesterday date, i want today's date to be selected as well as it should shows yesterday date and tomorrow date.. how to implement this? 我试图将选项设置为昨天,今天,明天的日期,我试图在下面的代码中实现其工作方式,但未显示昨天的日期,我希望选择今天的日期,并且应该显示昨天的日期和明天的日期。如何实现呢? any help would be appreciated.
任何帮助,将不胜感激。 Thanks in advance..
提前致谢..
<select id= "date-range" class="form-control" name="date">
<option value="yesterday">15th June 2019 (Yesterday) </option>
<option selected value="today">16th June 2019 (Today) </option>
<option value="tomorrow">17th June 2019 (Tomorrow) </option>
</select>
jquery jQuery的
<script src="js/jquery-3.2.1.min.js"></script>
<script src="js/jquery-ui.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var dateRange = document.getElementById('date-range'),
monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug",
"Sep", "Oct", "Nov", "Dec"];
for(var day = 0; day < 3; day++) {
var date = new Date();
date.setDate(date.getDate() + day);
dateRange.options[dateRange.options.length] = new
Option([date.getDate(), monthNames[date.getMonth()],
date.getFullYear()].join(' '), date.toISOString());
}
});
</script>
You're using the day variable inside the for-loop to add it to today's date. 您正在for循环中使用day变量将其添加到今天的日期。 Since it's starting at 0 it won't ever get yesterday's date.
由于它从0开始,所以永远不会得到昨天的日期。 Make it start from -1 instead.
使其从-1开始。
To make an option automatically selected you can use the defaultSelected and selected parameters of the HTMLOptionElement and set those to true. 要自动选择一个选项,您可以使用HTMLOptionElement的defaultSelected和selected参数并将其设置为true。
Finally to find out what the user has selected you need to attach a change event listener to the select element. 最后,要找出用户选择了什么,您需要将更改事件侦听器附加到select元素。
var dateRange = document.getElementById('date-range'), monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ]; var days = ["yesterday", "today", "tomorrow"]; for (var day = -1; day < 2; day++) { var date = new Date(); date.setDate(date.getDate() + day); var dateAsString = [date.getDate(), monthNames[date.getMonth()], date.getFullYear() ].join(' '); if (day == 0) { dateRange.options[dateRange.options.length] = new Option(dateAsString, dateAsString + " (" + days[day + 1] + ")", true, true); } else { dateRange.options[dateRange.options.length] = new Option(dateAsString, dateAsString + " (" + days[day + 1] + ")"); } } function handleSelected(e) { console.log(e.target[e.target.selectedIndex].value + " selected"); } dateRange.addEventListener("change", handleSelected);
<select id="date-range" class="form-control" name="date"> </select>
You can get as below,
1) Yesterday Date
let now = new Date();
var defaultDate = now - 1000 * 60 * 60 * 24 * 1;
defaultDate = new Date(defaultDate);
2) Today's date
let now = new Date();
var defaultDate = now ;
defaultDate = new Date(defaultDate);
3) Tomorrow's date
let now = new Date();
var defaultDate = now + 1000 * 60 * 60 * 24 * 1;
defaultDate = new Date(defaultDate);
Then you can just format it as per your required one.
Hope this will help you
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.