【问题标题】:Live clock javascript starts from my custom time实时时钟 javascript 从我的自定义时间开始
【发布时间】:2013-06-24 10:35:49
【问题描述】:

我试图根据我的自定义时间而不是系统时间来创建实时/动态时钟。

有很多脚本,但我找不到时钟从我的自定义时间开始。

这是我正在尝试修改的示例。问题是秒数没有改变,看起来我需要使用 ajax。没有ajax有什么办法吗?如果没有,请帮助我使用 ajax 进行操作!!!我不喜欢ajax方法的原因是应该调用另一个页面并刷新,所以它会吃服务器内存。

例如) http://www.javascriptkit.com/script/cut2.shtml

之前:

<script> 
function show(){ 
var Digital=new Date() 
var hours=Digital.getHours() 
var minutes=Digital.getMinutes() 
var seconds=Digital.getSeconds() 
... 
... 

之后:

<script> 
function show(){ 
var Digital=new Date() 
var hours=<?php echo $hr; ?>; 
var minutes=<?php echo $min; ?>; 
var seconds=<?php echo $sec; ?>; 
... 
... 

【问题讨论】:

    标签: javascript ajax time clock


    【解决方案1】:

    您的时钟没有移动的原因是因为它使用了最初呈现页面时服务器设置的小时、分钟和秒值,而不是每次 show() 时创建的新的 Date() 实例叫。您将希望利用 JavaScript 内置的 Date 对象来创建准确的时钟,因为 setTimeout 的准确性并不为人所知,并且构建自己的时钟会很麻烦(想象不得不担心闰年和夏令时之类的!)。

    我建议每次调用show() 时使用您的自定义时间和真实时间之间的差异来调整时钟值时间>时间。例如,如果您的自定义时间比实际时间晚 30 分钟,您可以调用:

    function show() {
       var Digital=new Date();
       Digital.setMinutes(Digital.getMinutes() - 30); // Rewind 30 minutes
       var hours=Digital.getHours()
       var minutes=Digital.getMinutes()
       var seconds=Digital.getSeconds()
       // ..
    }
    

    Fiddle

    希望这会有所帮助!

    【讨论】:

    • 谢谢.. 好点!!但是,hr 和 sec 不起作用.. ex) function show(){ var Digital=new Date(); Digital.getSeconds(Digital.getSeconds() - 30); // 倒带 30 秒 var hours=Digital.getHours()
    • 你想要setSecondsDigital.setSeconds(Digital.getSeconds() - 30);
    • 没问题。如果您愿意,请随时检查标记为答案框。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-10
    • 2016-09-24
    • 1970-01-01
    • 2022-01-23
    • 2020-02-01
    相关资源
    最近更新 更多