根据一天中的时间设置默认选项的选定值

set default option selected value based on time of day

本文关键字:选项 默认 时间 一天 设置      更新时间:2023-09-26

我有一个表单,它创建一个函数并设置执行该函数的每日时间。

我想更改我在07:00设置的"选定"值,以根据用户的当前时间进行选择,四舍五入到下一个小时。

有什么想法可以用javascript或jQuery mod最好地实现吗?

这是标记示例,只是为了给您一个视觉效果。

换句话说,而不是:

<option value="07:00" selected>7:00 am</option>

它只是:

<option value="07:00">7:00 am</option>

与其他选项值一样,但会根据用户当地时间的下一个可用小时为用户选择默认值。

以下是完整的列表,如果它能提供一个更好的例子:

<select id="ExecutionTime" name="ExecutionTime">
<option value="00:00">12:00 am</option><option value="01:00">1:00 am</option><option value="02:00">2:00 am</option><option value="03:00">3:00 am</option><option value="04:00">4:00 am</option><option value="05:00">5:00 am</option><option value="06:00">6:00 am</option><option value="07:00" selected>7:00 am</option><option value="08:00">8:00 am</option><option value="09:00">9:00 am</option><option value="10:00">10:00 am</option><option value="11:00">11:00 am</option><option value="12:00">12:00 pm</option><option value="13:00">1:00 pm</option><option value="14:00">2:00 pm</option><option value="15:00">3:00 pm</option><option value="16:00">4:00 pm</option><option value="17:00">5:00 pm</option><option value="18:00">6:00 pm</option><option value="19:00">7:00 pm</option><option value="20:00">8:00 pm</option><option value="21:00">9:00 pm</option><option value="22:00">10:00 pm</option><option value="23:00">11:00 pm</option>                  
</select>

我疯了吗?或者这可以在js中轻松完成吗?

这将自动填充下拉列表,然后选择当前小时。

var d = new Date().getHours(); // get the hour in 24 hour format
var a = d > 11 ? "pm" : "am"; /// get AM or PM
var hour = ((d + 11) % 12 + 1); // Convert 24 hours to 12 
selectList.val(hour + ':00 ' + a); // Set the dropdowns selected value

http://jsfiddle.net/sa9nqfxm/

var now = new Date();
var curHour = now.getHours();
if (now.getMinutes() != 0) {
    curHour = (curHour + 1) % 24; // round up
}
var hourString = (curHour < 10 ? "0" : "") + curHour + ":00";
$("#ExecutionTime option[value='"+hourString+"']").attr('selected', true);
$("#ExecutionTime option:not([value='"+hourString+"'])").attr('selected', false);
var selectList = $('#selectDropdown');
for(var i =0; i < 24; i++){
    var hour = ((i + 11) % 12 + 1);
    var a = i > 11 ? "pm" : "am";
    selectList.append('<option value="'+ hour + ':00 '+a+'" >'+ hour + ':00 '+a+'</option>');        
}
var d = new Date().getHours();
var a = i > 11 ? "pm" : "am";
var hour = ((d + 11) % 12 + 1);
selectList.val(hour + ':00 ' + a);