0

イベント申込書を作成中です。私の質問はどうすればサーバー時間を事前定義された時間と比較できますか? その事前定義された時間に、HTML にハードコアを書き込みます。

そのためのコードは次のとおりですが、機能していません。サーバー時間が事前に定義された時間と一致する場合、「こんにちは」というアラートが表示されます。

<script type="text/javascript">
    var currentTime = new Date()
    var hours = currentTime.getHours()
    var minutes = currentTime.getMinutes()

    if (minutes < 10)
        minutes = "0" + minutes

    var suffix = "AM";
    if (hours >= 12) {
        suffix = "PM";
        hours = hours - 12;
}
    if (hours == 0) {
        hours = 12;
    }

    var val1 = '5.43PM';

    var timecount =  hours + ":" + minutes + " " + suffix;
    console.log(timecount);
    if(timecount == val1) {
        alert('true');  
    }
    else {
        alert('false'); 
    }
</script>


<div class="zone"> 5.06 AM</div>
<div class="zone"> 6.06 AM</div>
<div class="zone"> 6.25 PM</div>
<div class="zone"> 5.03 PM</div>
<div class="zone"> 6.49 PM</div>
<div class="zone"> 8.05 PM</div>

デモリンク

4

2 に答える 2

0
var currentTime = new Date()

JSはクライアント側のスクリプトであるため、サーバー時間ではなくクライアントマシンの時間を提供します。したがって、アプローチを変更する必要があります。

クライアント時間に関する限り、以下のコードが機能するはずです。

<script type="text/javascript">
    var currentTime = new Date()
    var hours = currentTime.getHours()
    var minutes = currentTime.getMinutes()

    if (minutes < 10)
        minutes = "0" + minutes

    var suffix = "AM";
    if (hours >= 12) {
        suffix = "PM";
        hours = hours - 12;
}
    if (hours == 0) {
        hours = 12;
    }

    var val1 = '6.45PM';

    var timecount =  hours + ":" + minutes + " " + suffix;

    if(timecount == val1) {
        alert('true');  
    }
    else {
        alert('false'); 
    }
</script>

フィドル: http://jsfiddle.net/acwD3/2/

于 2013-06-07T13:08:09.963 に答える
0

HTML と JavaScript は、クライアントのブラウザーで実行されます。時刻をサーバー時刻と比較するには、何らかのサーバー側言語を使用して、サーバーの現在の日付と時刻を HTML に出力する必要があります。

于 2013-06-07T12:43:34.680 に答える