我有一个创建函数的表单,并设置每日执行该功能的时间。
我想更改“已选择的'我在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中轻松完成?
答案 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
答案 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);