使用javascript时强制使用Date进行所有操作的servertime

时间:2013-12-07 23:02:08

标签: javascript php date timer

我正在使用Opencart并使用一个具有倒数计时器的Auction插件。当计时器结束时,拍卖完成。问题:计时器依赖于访客时钟。因此对于一些人来说,拍卖会在1分钟后结束它甚至可以通过将时钟设置为过去几个小时来进行滥用。

有没有办法强制opencart中的所有操作依赖服务器时钟?

我尝试了以下代码,但它崩溃了拍卖运行的页面,但在空白页面上工作正常。此代码强制js使用servertime。

<?php
$now = date("Y-n-d-H-i-s", time());

echo '
var servDateArray=\''.$now.'\'.split(\'-\');
var Date=new Date(Number(servDateArray[0]),Number(servDateArray[1]),Number(servDateArray[2]),Number(servDateArray[3]),Number(servDateArray[4]),Number(servDateArray[5]));
document.write(Date);
</script>
';
?>

我绝对失去了,我希望有一种方法可以迫使整个网站使用servertime。

请注意我是一个新手,我花了几天谷歌搜索到这一点。

感谢您阅读

1 个答案:

答案 0 :(得分:0)

在客户端:计算服务器和客户端之间的时差。当显示时间与帐户不同时。

var serverDate = new Date(2013,12,06,0,0,0);
var closeDate = new Date(2013,12,06,0,1,0);
var clientDate = new Date();
var timeDiff = clientDate - serverDate;

$('#timediff').html(timeDiff);
setInterval(function() {
    var remainingMillisecs = closeDate - (new Date()) + timeDiff;
    var remainingSeconds = remainingMillisecs / 1000;
    $('#remaining').html(parseInt(remainingSeconds));
}, 1000);

演示:http://jsfiddle.net/7b3AC/

我认为拍卖是在服务器端进行的,所以在有人发布出价时你真的应该检查拍卖是否结束。