2013-06-27 60 views
1

我試圖創建一個實時/動態時鐘是基於我的自定義時間而不是系統時間。現場時鐘javascript從我的自定義時間開始

有很多腳本,但我無法找到時鐘從我的自定義時間開始。

這是我試圖修改的一個示例。問題是秒不會改變,它看起來像我需要使用Ajax。有沒有辦法做到沒有Ajax?如果沒有,請幫助我使用ajax做到這一點!我不喜歡ajax方法的原因是另一個頁面應該被調用和刷新,所以它會吃服務器RAM。

前) 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; ?>; 
... 
... 

回答

1

你的時鐘不動,是因爲它使用的小時,分​​鍾和秒的原因值設置由服務器在頁面最初呈現時,而不是每次創建新的新的Date()實例show()被調用。您需要利用內建的Date對象中的JavaScript來創建精確的時鐘,因爲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

希望這有助於!

+0

謝謝..好點! 但是,hr和sec不起作用。 ex) function show(){ var Digital = new Date(); Digital.getSeconds(Digital.getSeconds() - 30); //後退30秒 var hours = Digital.getHours() – newworroo

+0

你想'setSeconds'。 'Digital.setSeconds(Digital.getSeconds() - 30);' –

+0

非常感謝你..我拼錯setSeconds getSeconds ..現在完美.. !!! – newworroo

相關問題