当前位置: 首页 > 知识库问答 >
问题:

Javascript时钟?

澹台衡
2023-03-14

我用PHP获得GMT时间,我想让它像时钟一样计数。

<?php $time = gmdate('H:i:s'); ?>

<script>var time = <?php echo($time) ?>;
    setInterval(function() {
        time += 1;
        $("#timediv").text("Current time (GMT): " + time);
        //somehow convert it to 11:44:31 AM ??
    }, 1000);
</script>

seomeon能帮我吗?

共有3个答案

梅飞龙
2023-03-14

替换

<?php $time = gmdate('H:i:s'); ?>

<?php $time = gmdate('h:i:s A'); ?>
颜修明
2023-03-14

我不想听Motanelu的回答,而是改成这样:

<script>var time = Date.parse('<?php echo($time) ?>');
    setInterval(function() {
        time.setSeconds(time.getSeconds() + 1);
        $("#timediv").text("Current time (GMT): " + time);
        //somehow convert it to 11:44:31 AM ??
    }, 1000);
</script>

这将创建一个Date对象,您可以使用例如Time.ToLocalEtimeString();对该对象进行格式化

况承福
2023-03-14

首先,依赖setTimeout/setInterval精度来显示时间不是一个好主意。有多种原因导致它们不那么准确,比如CPU速度减慢。这就是为什么您应该使用Date对象,它使用实际时钟。

这是我想在客户端使用我的服务器的时间时所做的:

<!-- jQuery -->
<script src="https://code.jquery.com/jquery-2.1.3.min.js"></script>

<!-- dateFormat plugin for nice and easy time formatting -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-dateFormat/1.0/jquery.dateFormat.min.js"></script>

<script>
    var clientTime = (new Date()).getTime(),
        serverTime = <?php echo time() ?> * 1000,
        difference = clientTime - serverTime;

    setInterval(function () {
        var now = new Date();

        now.setTime(now.getTime() - difference);

        $("#timediv").text("Current time (GMT): " + $.format.date(now, "hh:mm:ss a"));
    }, 1000);
</script>

其背后的关键概念是计算服务器时间和客户端时间之间的差异。然后,您将客户端(每次使用new Date()创建)的差异标准化。我们仍然在使用setInterval,但即使它由于某种原因被延迟或加速,显示的时间仍然是正确的。

 类似资料:
  • 本文向大家介绍JavaScript电子时钟倒计时,包括了JavaScript电子时钟倒计时的使用技巧和注意事项,需要的朋友参考一下 本文实例讲解了JavaScript电子时钟倒计时的详细代码,分享给大家供大家参考,具体内容如下 JavaScript时间类 1、获取时分秒:          getHours()          getMinutes();          getSeconds(

  • 主要内容:setTimeout(),setInterval(),JS 取消定时器JavaScript 定时器,有时也称为“计时器”,用来在经过指定的时间后执行某些任务,类似于我们生活中的闹钟。 在 JavaScript 中,我们可以利用定时器来延迟执行某些代码,或者以固定的时间间隔重复执行某些代码。例如,您可以使用定时器定时更新页面中的广告或者显示一个实时的时钟等。 JavaScript 中提供了两种方式来设置定时器,分别是 setTimeout() 和 setInterva

  • 本文向大家介绍javascript canvas时钟模拟器,包括了javascript canvas时钟模拟器的使用技巧和注意事项,需要的朋友参考一下 canvas时钟模拟器,供大家参考,具体内容如下 主要功能 能够显示当前的时间,也能够切换夜晚模式和白天模式 主要代码 h = h > 12 ? h : h - 12 // 下午时间修正 // 如果画布状态很混沌的话多使用ctx.restore()

  • 本文向大家介绍javascript实现时钟动画,包括了javascript实现时钟动画的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了javascript实现时钟动画的具体代码,供大家参考,具体内容如下 效果图: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 问题内容: 我一直对JavaScript始终是异步的印象。但是,我了解到在某些情况下不是这样(即DOM操作)。关于何时何时同步以及何时异步,有什么好的参考?jQuery会完全影响吗? 问题答案: JavaScript始终是同步的并且是单线程的。如果您正在页面上执行JavaScript代码块,则该页面上当前将不会执行其他JavaScript。 JavaScript仅在可以进行Ajax调用的意义上是异

  • 这个问题在互联网上一次又一次地出现(即使是在SO上),但我还没有找到一个令人满意的解决方法: 如何在运行的web应用程序中更改/替换Javascript代码,而不重新加载页面? 很多人对此的回答是“你不能,因为这是不可能的”。IntelliJ IDEAs live edit插件的一些实验证明了这是可能的。但我不想为这个特性绑定到IDE。(加分:与浏览器无关) 下面是我尝试的: 将//#source