1

我尝试在我的服务器中显示当前时间(它在我的服务器中的网页),但是当我打开网页时,我得到了运行该页面的计算机上的时间。

有没有办法做到这一点 ?

这是我的代码:

function startTime(){
  var today=new Date();
  var h=today.getHours();
  var m=today.getMinutes();
  var s=today.getSeconds();

  m=checkTime(m);
  s=checkTime(s);
  $('#cTime').val(h+":"+m+":"+s);
  t=setTimeout(function(){startTime()},500);
}

function checkTime(i){
  if (i<10) {
         i="0" + i;
      }
  return i;
}

谢谢你。

4

5 回答 5

4

JavaScript 将始终返回运行它的计算机上的时间,因为它是在客户端执行的。

您可以在服务器上编写一个简单的脚本来输出当前时间并通过JavaScript 向该脚本发送请求。

你可以这样做:

PHP

<?php
    // get_time.php
    // Simple!
    echo time();
?>

JavaScript

// Using jQuery's GET function...
$.get('get_time.php', function(data){
    // The variable 'data' should equal the result from the PHP time() function!
    alert(data);
})
于 2012-11-23T16:47:25.373 回答
3

如果您使用的是 php(您在下面提到),请在第一次加载时将时间放在页面中,然后您可以使用 Javascript 来显示并更新它,而无需进行重复的 ajax 调用。

于 2012-11-23T16:50:17.900 回答
1

不确定您使用的是哪种服务器端技术,但您始终可以对服务器进行 ajax 调用以获取服务器时间,然后在 Javascript 中使用它来创建新的日期时间对象,然后继续执行上述逻辑。

于 2012-11-23T16:49:42.113 回答
1

其他回复说要写一个脚本来通过ajax获取时间,但是为什么输出一个页面然后ajax返回服务器呢?你想要你的服务器时间,首先回应它。PHP 示例:

<?php echo '<script>var today=new Date("'.date("Y-m-d H:i:s").'");</script>'; ?>

echo date("jS F Y H:i");例如,如果您只想显示时间而不用它做任何事情

于 2012-11-23T17:08:37.770 回答
1

PHP 可以实现它,但是如果 javascript 需要调用函数来显示时间而不是每次都刷新整个页面,它可能就不那么灵活了。

视需求而定。在这种情况下,只需使用 AJAX 向后端 php 发送 http 请求,以将时间回显到 javascript。

于 2012-11-23T17:46:02.520 回答