我是JavaScript新手(来自Flex)。我正在使用Select2组件以15分钟为增量显示时间:
<select id="e2" style="width:125px">
<option value="00:00:00">12:00 AM</option>
<option value="00:15:00">12:15 AM</option>
<option value="00:30:00">12:30 AM</option>
<option value="00:45:00">12:45 AM</option>
<option value="01:00:00">1:00 AM</option>
<option value="01:15:00">1:15 AM</option>
<option value="01:30:00">1:30 AM</option>
<option value="01:45:00">1:45 AM</option>
</select>
我想要的是预先选择与当前时间(未来)最匹配的时间;例如,如果它现在是12:02,我希望选择12:15(而不是12:00)。
我的问题是如何以及在何处使用Select2。
初始化组件时是否使用“init selection”方法:
$( '#e2' ).select2();
或者做其他事情更好吗?
这是我使用(在Flex中)设置日期的当前方法。我只是不确定使用Select2组件在哪里做到这一点。
非常感谢任何提示。谢谢!
答案 0 :(得分:1)
对于您需要实现的目标,我想说最好的方法是创建自己的函数来查找最接近的时间段,然后格式化字符串以匹配您的Select选项值。
下面是示例代码(您需要根据需要对其进行格式化),但它适用于我当前时间:
<强> HTML 强>
<select id="e2" style="width:125px">
<option value="12:00:00">12:00 AM</option>
<option value="12:15:00">12:15 AM</option>
<option value="12:30:00">12:30 AM</option>
<option value="12:45:00">12:45 AM</option>
<option value="01:00:00">1:00 AM</option>
<option value="01:15:00">1:15 AM</option>
<option value="01:30:00">1:30 AM</option>
<option value="01:45:00">1:45 AM</option>
</select>
<强>的jQuery 强>
<script>
function getNearestTimeSlotString() {
var now = new Date();
var hour = now.getHours();
var minutes = now.getMinutes();
var ampm = "AM";
if (minutes < 15) {
minutes = "00";
} else if (minutes < 30){
minutes = "15";
}else if (minutes < 45){
minutes = "30";
} else {
minutes = "00";
++hour;
}
if (hour > 23) {
hour = 12;
} else if (hour > 12) {
hour = hour - 12;
ampm = "PM";
} else if (hour == 12) {
ampm = "PM";
} else if (hour == 0) {
hour = 12;
}
return(hour + ":" + minutes + ":00");
}
$(document).ready(function(e) {
alert(getNearestTimeSlotString());
$("#e2").val(getNearestTimeSlotString);
});