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

HTML 和 JavaScript 在客户端的浏览器中运行。为了将时间与服务器时间进行比较,您需要使用某种服务器端语言将服务器的当前日期和时间输出到 HTML。

于 2013-06-07T12:43:34.680 回答
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 回答