1

我试图创建一个实时/动态时钟是基于我的自定义时间而不是系统时间。

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

这是我正在尝试修改的示例。问题是秒数没有改变,看起来我需要使用 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; ?>; 
... 
... 
4

1 回答 1

1

Date()您的时钟不移动的原因是因为它使用了最初呈现页面时服务器设置的小时、分钟和秒值,而不是每次show()调用时都创建一个新的实例。你会想利用 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()
   // ..
}

小提琴

希望这可以帮助!

于 2013-06-27T04:30:32.973 回答