服务器时间而不是客户端时间 JAVASCRIPT
Server time instead of client time JAVASCRIPT
是否可以将此脚本与服务器时间而不是客户端时间一起使用。(用于检查时间是否过去(它现在使用客户端时间,这是一个问题。 (也许用 php??
<script>
var end = new Date('02/19/2012 10:1 AM');
var _second = 1000;
var _minute = _second * 60;
var _hour = _minute * 60;
var _day = _hour * 24;
var timer;
function showRemaining() {
var now = new Date();
var distance = end - now;
if (distance < 0) {
clearInterval(timer);
document.getElementById('countdown').innerHTML = 'EXPIRED!';
return;
}
var days = Math.floor(distance / _day);
var hours = Math.floor((distance % _day) / _hour);
var minutes = Math.floor((distance % _hour) / _minute);
var seconds = Math.floor((distance % _minute) / _second);
document.getElementById('countdown').innerHTML = days + 'days ';
document.getElementById('countdown').innerHTML += hours + 'hrs ';
document.getElementById('countdown').innerHTML += minutes + 'mins ';
document.getElementById('countdown').innerHTML += seconds + 'secs';
}
timer = setInterval(showRemaining, 1000);
</script>
<div id="countdown"></div>
你可以从 ajax 请求中获取时间,或者使用这样的东西:
<?php
$now = date('d-m-Y');
$end= "01-01-2013"
$date = strtotime($end) - strtotime($now);
$days = date('d', $date);
$monthes= date('m', $date);
$years= date('Y', $date);
?>
<script>
var days = "<?= $days ?>";
var monthes= "<?= $monthes?>";
var years= "<?= $years?>";
document.getElementById('countdown').innerHTML = days+ ' days';
document.getElementById('countdown').innerHTML += monthes+ ' monthes';
document.getElementById('countdown').innerHTML += years+ ' years';
</script>
Puku的答案将返回固定日期,而不是服务器时间。他似乎已经解决了它。
我提议:
<script>
var date = <? echo time(); ?>;
// etc...
</script>
这将获取自Unix纪元IIRC以来的(服务器(秒数,并将其作为整数填充到变量"date"中。 请注意,<?
和 ?>
之间的所有内容都是 PHP,因此在服务器上执行。
请注意,我没有使用缩写语法,例如 puku。默认情况下我没有它,也无法更改它,所以我认为对有相同问题的人使用此符号会很好。
在 http://www.roseindia.net/ajax/ajax-first-example.shtml 中找到了一个与 Ajax 类似的示例
[更新] 在评论说我之前的帖子这不起作用之后,我已经审查了每一个并更改了 JavaScript 和 PHP 文件(现在提供完整的代码(。此代码现在有效。我试图使其尽可能与原始示例和之前提供的链接相似,而不是优化内容(我会把它留给你(。
<script>
var end = new Date('02/19/2014 10:1 AM');
var _second = 1000;
var _minute = _second * 60;
var _hour = _minute * 60;
var _day = _hour * 24;
var timer;
var distance;
function startShowRemaining(strnow) {
var now = new Date(strnow);
distance = end - now;
//To prevent 1 sec. lag, we make first a direct call to showRemaining
showRemaining();
//Then each second, we decrement count and show info
timer = setInterval(countRemaining, 1000);
}
function countRemaining() {
distance = distance - 1000; //we substract a second (1000 ms) with each call
showRemaining();
}
function showRemaining() {
if (distance < 0) {
clearInterval(timer);
document.getElementById('countdown').innerHTML = 'EXPIRED!';
return;
}
var days = Math.floor(distance / _day);
var hours = Math.floor((distance % _day) / _hour);
var minutes = Math.floor((distance % _hour) / _minute);
var seconds = Math.floor((distance % _minute) / _second);
document.getElementById('countdown').innerHTML = days + ' days ';
document.getElementById('countdown').innerHTML += hours + ' hrs ';
document.getElementById('countdown').innerHTML += minutes + ' mins ';
document.getElementById('countdown').innerHTML += seconds + ' secs';
}
function postRequest(strURL) {
var xmlHttp;
if (window.XMLHttpRequest) { // Mozilla, Safari, ...
var xmlHttp = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE
var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlHttp.open('POST', strURL, true);
xmlHttp.setRequestHeader('Content-Type',
'application/x-www-form-urlencoded');
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4) {
startShowRemaining(xmlHttp.responseText);
}
}
xmlHttp.send(strURL);
}
postRequest('time.php');
</script>
<div id="countdown"></div>
并创建文件:时间.php
<?php
print date("d/m/Y H:i:s");
?>
PHP文件被调用一次以获取当前日期,然后"距离"var每秒递减,以防止进一步使用带宽的Ajax调用,并且无论如何可能需要超过一秒钟。使用了一个不同的递减函数,因此我们可以立即调用 showRemain,而无需递减它(您也可以在第一次调用中开始增加 1000 并且只使用一个函数..(。
无论如何,我更喜欢 Puku 方法,只使用 PHP 为"now"var 编写正确的值,它更简单。这个只是作为Ajax使用的一个例子。
- 使用JavaScript将客户端日期/时间字符串转换为JSON日期/时间串
- Javascript 倒数计时器 - 客户端时间与 mySQL 时间
- 使用 JavaScript 的客户端日期/时间戳一致(考虑时区)
- 同步客户端和服务器端时间
- JavaScript编辑本地客户端时间
- javascript客户端时间到php服务器时间
- 显示客户端时间,而不是 javascript 中的服务器时间
- 将 JavaScript 的客户端时间获取到 PHP 中
- 如何使用客户端时区将数据库时间戳输出为客户端中的日期戳
- 引导日期选择器占用客户端PC时间,如何从服务器设置默认时间
- 服务器时间而不是客户端时间 JAVASCRIPT
- 客户端和服务器时间之间的差异
- 服务器和客户端时区上的日期时间差异
- 如何使这个javascript函数实际收集服务器时间和倒计时,直到事件开始而不是浏览器/客户端时间
- FlipClock - 使用服务器时间而不是客户端时间
- 想要显示服务器 UTC 日期时间,而不考虑客户端计算机的日期时间
- 比较客户端和服务器时间
- 在浏览器上显示服务器时间而不是客户端时间
- 当从客户端从ajax调用检索时,我在服务器上的日期时间增加了12.30小时
- 正在测量服务器响应时间(客户端)