0

我正在尝试创建一个显示当前实际时间的 Javascript 时钟,而不是显示客户端机器的本地时间。

时钟是脚本的一部分,它计算两个值之间的时间差(在 php 中,但这个时钟的目的是提供视觉表示)。重要的是,脚本的用户不能更改显示的时间,因为这会对整个程序的结果产生不正确的结果。

我意识到我可能必须使用 php 函数来返回特定时区的时间,但我不明白如何将其输入到我的脚本中。我的 Javascript 时钟代码如下(currenttime_large 是该脚本的 DIV 容器的 ID):

    <script type="text/javascript" language="javascript">
  function renderTime() {
      var currentTime = new Date();
      var h = currentTime.getHours();
      var m = currentTime.getMinutes();
      var s = currentTime.getSeconds();
      setTimeout('renderTime()',1000);
      if (h == 0) {
          h = 12;
      } 
      if (h < 10) {
          h = "0" + h;
      }
      if (m < 10) {
          m = "0" + m;
      }
      if (s < 10) {
          s = "0" + s;
      }
      var myClock = document.getElementById('currenttime_large');
      myClock.textContent = h + ":" + m + ":" + s + " ";
      myClock.innerText = h + ":" + m + ":" + s + " ";
  }
  renderTime();
    </script>

请有人建议如何调整此脚本,以便显示的时钟显示 GMT(伦敦)时间而不是客户时间。

提前谢谢了,

艾丹

4

4 回答 4

1

使用getUTC...方法:

var h = currentTime.getUTCHours();
var m = currentTime.getUTCMinutes();
var s = currentTime.getUTCSeconds();
于 2013-08-30T20:58:08.633 回答
0

我一直在寻找这样的东西,我发现的最好的解决方案是这个 http://www.jqueryscript.net/demo/jQuery-Based-Analog-And-Digital-World-Clock-jClocksGMT-js/

如果您愿意,您可以保存整个页面,或者如果它们没有自动保存,则下载必要的文件。然后在您的 html 代码中,您只需根据 ID 更改 GMT 时区。

而已

于 2015-07-04T10:31:16.983 回答
0

它可以在没有 PHP 的情况下完成。我已经使用简单的 HTML 和 JavaScript 计算完成了它。注意:这个时钟不是通用的。因为我住在印度,所以我根据印度格林威治标准时间 (5:30) 修复了所有参数。如果有人想使用它而不住在印度,则必须根据自己的国家/地区 GMT 自定义参数

我的代码如何工作?这是你的答案

  1. 首先,我们创建了一个简单的计时器程序。
  2. 将时间参数传递给名为 london() 的函数 3. 在函数 london() 中,所有内容都已处理。我已经把印度的格林尼治标准时间。使用参数函数 london 从印度时间生成正确的伦敦时间并给出 GMT 时间

注意:1. 由于此代码不是通用的.. 印度以外的人必须根据需要自定义它...

2.此代码使用设备时间并处理正确的 GMT 0 时间。示例我的代码可以从设备时间减去 5 小时 30 分钟,因为我的 GMT 时间是 5:30(印度)

3.离线也能正常工作

4.如果有人更改国家(格林威治标准时间),他们将不得不再次自定义代码

完整代码

 <body onload="timer()">
 <p id="txt1"></p>
  <p id="txt2"></p>
  <script>

  function timer(){

    //Getting Device Time

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

  //Returning value of ckeckTime();
   m = checkTime(m);
   h = checkTime(h);
   s = checkTime(s);

  var trigger = setTimeout(timer,1000);

    document.getElementById("txt1").innerHTML = h+" "+m+" "+s; 

    london(h,m,s); //Passing device time to function london

    }


    function london(h,m,s){

    //This function produces london time

    //var h (Device hour)
       // m (Device minute)
       // s (Device second)

    defhr = 5; //define hour
    defmn = 30; //define minutes

    /* defhr = 5 and defmn = 30 according to India GMT +5 30*/

    if(m < defmn){ //When device minute is less than define minutes

    defhr += +0
    var hour = h - defhr;
    let x = m - defmn;
    var min = 60 + x;

    } else {

    defhr += -1
    var hour = h - defhr;
    var min = m - defmn;

    }

    if(h < defhr){ //When device hour is less than define hour

    let y = defhr - h;
    var hour = 24 - y;

    }else {

    var hour = h - defhr;

    }

    // returning value of checkTime();
    hour = checkTime(hour);
    min = checkTime(min);



    document.getElementById("txt2").innerHTML = hour+" "+min+" "+s;

    }


    //checkTime function adds 0 in front a number when it is less than 10
    function checkTime(i){
    if(i<10){ i="0"+i; }
    return i;
    }

    </script>
    </body>

    </html>

提示: 1. 如果您居住在西方国家或 GMT 值为负值,则在 defhr 和 defmn 部分输入负值。

  1. 如果有人在 GMT + 5:30(印度)使用此代码,他们将不需要定制。

  2. 确保您的代码生成正确的伦敦 GMT 时间。拿起笔记本、计算器,或者您也可以使用在线世界时钟对其进行测试

于 2019-06-27T02:16:32.623 回答
0

我正在寻找世界模拟时钟。我找到了一个基本上用 jQuery、Html 5、CSS 3 和画布创建的源/示例。

来源:https ://github.com/php-dedicated-developers/world-clock

于 2016-12-03T14:16:27.217 回答