我需要做一個倒計時鐘,倒計時的日子,小時,分鐘和秒,這是我選擇的日期,使用jQuery或谷歌應用程序引擎(Python)。倒計時器使用jQuery或谷歌應用程序引擎?
我創建了一個使用JavaScript的計時器,但在這個我用了系統時間。
我需要使用服務器time.Can任何機構給我的想法,建立一個倒計時器使用服務器UTC時間。
我需要做一個倒計時鐘,倒計時的日子,小時,分鐘和秒,這是我選擇的日期,使用jQuery或谷歌應用程序引擎(Python)。倒計時器使用jQuery或谷歌應用程序引擎?
我創建了一個使用JavaScript的計時器,但在這個我用了系統時間。
我需要使用服務器time.Can任何機構給我的想法,建立一個倒計時器使用服務器UTC時間。
我創建了一個使用JavaScript的計時器,但在這個系統中,我使用了系統時間。
如果該JavaScript真正滿足您的需求,那麼該JavaScript代碼也可以很容易地變爲動態的。在代碼中,無論當前系統時間初始化,只需使用您選擇的語言(Python)插入服務器時間即可。換句話說:使用你的服務器語言(Python)來輸出腳本,就像它現在一樣,除了替換初始化當前時間的部分。
在PHP中,一些僞代碼(不知道的日期()構造函數的參數)可能看起來像,例如:
// my_countdown_script.php
[..]
var startTime = new Date(<?php echo time(); ?>);
[..]
然後,而不是包括你的JavaScript,您將得到包括PHP文件插入服務器時間像上面:
<script type="text/javascript" src="my_countdown_script.php"></script>
的好處是:這將在支持你已經創建了JavaScript的瀏覽器。 (在一些更新的版本中,您的JavaScript可能包含一些初始化程序,允許您在將庫包含在HTML中後設置當前時間,這將允許實際的JavaScript庫是靜態的,因此可以通過瀏覽器。)
爲什麼不簡單地使用日期對象的UTC方法?
看到:https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date
所有本地時間的方法有UTC同行
編輯:這是爲了與他在JavaScript中現有的實現中。
如果你真的想確保你的服務器的時候,做一個XHR請求(東西),檢查日期頭
不!先生。喬納森芬蘭我不想把系統時間作爲輸入,我想要服務器時間。 – 2009-06-11 05:05:17
您可以可靠地http://just-the-time.appspot.com/獲取服務器時間 - App Engine應用程序我做幫助堆棧溢出的提問者,實際上;-)。它的簡單代碼在http://code.google.com/p/just-the-time/處開放,我可以輕鬆地添加所需的功能(以您選擇的未來日期查詢,返回日期,小時,分鐘和秒鐘的頁面,以一些易於使用的格式) - 只是讓我知道!
良好的jQuery插件可以在這裏找到http://keith-wood.name/countdown.html
所有你需要做的,然後通過之前在頁面上設置一個變量,新的日期是從傳遞你的腳本語言PHP/asp.net初始化並更新_calculatePeriods函數以獲取該變量而不是現在的變量。
<script type="text/javascript" src="js/jquery-1.3.2.js"></script>
<script type="text/javascript" src="js/jquery.countdown.js"></script>
<script type="text/javascript">
$(function() {
var servernow = new Date(<?php echo time(); ?>);
var austDay = new Date();
austDay = new Date(austDay.getFullYear() + 1, 1 - 1, 26);
$('#defaultCountdown').countdown({until: austDay});
$('#year').text(austDay.getFullYear());
});
</script>
從JS/jquery.countdown.js
* Calculate the requested periods between now and the target time.
@param inst (object) the current settings for this instance
@param show (string[7]) flags indicating which periods are requested/required
@param now (Date) the current date and time
@return (number[7]) the current time periods (always positive)
by year, month, week, day, hour, minute, second */
_calculatePeriods: function(inst, show, now) {
// Find endpoints
inst._now = servernow;
喬希
所以基本上你需要兩樣東西:
渲染的東西你的時間服務器端是這樣的:
<span id="countdown" title="1245515631554">4 min. and 24 seconds</span>
當標題是當前時間,你可以很容易地解析時間戳。你也可以解析文本,但這需要更復雜的代碼。
然後添加一些獲取時間和每秒更新文本的Javascript。設置獲取日期的超時,更新它並設置文本。
jQuery Timers是我以前用過的插件,發現非常好。
只需將兩個JavaScript變量設置爲倒計時的當前時間和目標時間,並使用jQuery計時器更新「剩餘時間」即可。如果你願意,你可以添加另一個時間來重新同步服務器和客戶端的時間 - 每隔一段時間 - 儘管這可能沒有必要。
谷歌應用程序引擎是否必須是Python?如果您不介意Java App Engine的Java版本,我可以爲您提供幫助。 – 2009-06-15 22:20:34