根据时间设置默认选项选择值

时间:2014-09-10 20:55:29

标签: javascript jquery

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

我想更改“已选择的'我在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中轻松完成?

2 个答案:

答案 0 :(得分:2)

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

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/

答案 1 :(得分:1)

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);