如何将服务器时间与预定义时间进行比较?

时间:2013-06-07 12:33:05

标签: javascript jquery html datetime time

我正在制作一个活动申请表。我的问题如何将服务器时间与预定时间进行比较?那个预定义的时间我会把硬核写入我的HTML。

这是代码,但它不起作用。 如果服务器时间与预定义时间匹配,那么它应该给我一个警告“hi”。

<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>

Demo Link

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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/