2012-11-23 38 views
1

我嘗試在我的服務器(它在我的服務器中的網頁)中顯示當前時間,但是當我打開網頁時,我在運行該頁面的計算機上得到時間。在遠程計算機上顯示當前時間javascript

有沒有辦法做到這一點?

這是我的代碼:

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

    m=checkTime(m); 
    s=checkTime(s); 
    $('#cTime').val(h+":"+m+":"+s); 
    t=setTimeout(function(){startTime()},500); 
} 

function checkTime(i){ 
    if (i<10) { 
     i="0" + i; 
     } 
    return i; 
} 

謝謝。

+1

你想只是在服務器上的時間,或者它是否應該在服務器的同一時區? –

回答

4

JavaScript將始終在其運行的計算機上返回時間,因爲它在客戶端執行。

您可以在服務器上編寫一個簡單的腳本,輸出當前時間並通過 JavaScript向該腳本發送請求

你可以做這樣的事情:

PHP

<?php 
    // get_time.php 
    // Simple! 
    echo time(); 
?> 

的JavaScript

// Using jQuery's GET function... 
$.get('get_time.php', function(data){ 
    // The variable 'data' should equal the result from the PHP time() function! 
    alert(data); 
}) 
+2

所以這是不可能的?我可以使用PHP嗎? – Mils

+0

絕對!堅持在我的答案編輯... –

+4

請不要建議重複ajax調用來獲得服務器時間。所有你需要的是頁面第一次加載時的偏移值,然後你可以在那之後計算出它的客戶端。 – Archer

1

不知道什麼服務器使用的是雙面技術,但你總是可以讓ajax調用服務器來獲取服務器時間,然後在你的服務器中使用它Javascript創建一個新的日期時間對象,然後繼續你的邏輯如上。

+0

我會試試,謝謝! – Mils

3

如果您使用php(您在下面提到),請在第一次加載時將時間放在頁面中,然後您可以使用Javascript來顯示並更新它,而無需重複執行ajax調用。

+0

感謝您的快速響應! – Mils

+0

沒問題 - 我希望它有幫助。這顯然只是理論,但它是完成你所需要的一種合理方式。 – Archer

1

其他答覆說寫一個腳本來獲得時間由ajax,但爲什麼輸出一個頁面,然後ajax回到服務器?你想要你的服務器時間,首先回應它。 PHP例子:

<?php echo '<script>var today=new Date("'.date("Y-m-d H:i:s").'");</script>'; ?> 

如果你只是想在時間顯示和與它echo date("jS F Y H:i");例如

無計可施
+1

不,我想將php整合到javaScript中,否則不會 – Mils

1

PHP可以實現它,但是如果JavaScript需要調用它可能不會像靈活函數顯示時間,而不會在每次刷新整個頁面時刷新。

根據要求而定。在這種情況下,只需使用AJAX通過後端php發送http請求以迴應JavaScript的時間。