1

私は(Flexから)JavaScriptを初めて使用します。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:00 ではなく 12:15 を選択します。

私の質問は、Select2 を使用してそれを行う方法と場所です。

コンポーネントを初期化するときに「初期選択」メソッドを使用しますか?

$( '#e2' ).select2();

それとも別のことをしたほうがいいですか?

日付を設定するために(Flexで)使用している現在の方法は次のとおりです。Select2 コンポーネントでこれを行う場所が少しわかりません。

どんなヒントでも大歓迎です。ありがとうございました!

4

1 に答える 1

1

達成する必要があることについては、独自の関数を作成して最も近いタイムスロットを見つけ、Select オプションの値に一致するように文字列をフォーマットするのが最善の方法だと思います。

以下はサンプルコードです(必要に応じてフォーマットする必要があります)が、現在の時間では機能します:

サンプル: http://jsfiddle.net/ZC5tG/

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

于 2013-06-11T16:38:00.223 に答える