2013-08-25 112 views
5

我正在使用jQuery插件將倒計時器放入我的網頁中。目前,控制代碼什麼的計時器顯示的是:特定時間和日期的Javascript倒計時

<script type="text/javascript"> 
    var clock = $('.clock').FlipClock(3600 * 24 * 3, { 
     clockFace: 'DailyCounter', 
     countdown: true 
    }); 
</script> 


的JS該插件可以在這裏看到:https://github.com/objectivehtml/FlipClock/blob/master/js/flipclock/flipclock.js

中使用的代碼示例頁面可以在這裏看到: http://flipclockjs.com/faces/daily-counter

當前計時器是倒計時3天,每次頁面刷新時都會重置。我想使用倒數計時器的自定義時間,這將是絕對的(不會重置頁面刷新)。我希望日期爲2013年9月30日太平洋標準時間中午12點(美國西部 - 加州時區)。

是否有使用Javascript或jQuery做到這一點?

+0

您有權編寫php代碼? –

+0

nope ..僅限於javascript –

回答

15

獲取當前時間,並注意這將是對用戶計算機的時鐘,無論它被設置爲設定時間,並設置一個特定的日期,然後計算出的差異,使用該插件:

var date = new Date(Date.UTC(2013, 8, 30, 12, 0, 0)); 
var now = new Date(); 
var diff = date.getTime()/1000 - now.getTime()/1000; 

var clock = $('.clock').FlipClock(diff, { 
    clockFace: 'DailyCounter', 
    countdown: true 
}); 

對於準確的時間,我會使用您的網絡服務器來輸出當前時間。

+0

typeError是什麼意思? – adeneo

+0

我可能應該注意到,你連接的插件被稱爲*** FlipClock ***而不是*** FlipClip ***? – adeneo

+0

是的,它是flipclock不flipclip,但不幸的是,無法正常工作,或者http://www.domainandseo.com/26/index.html ....正常版本是http://www.domainandseo.com/ 26/index1.html –

8

我想這樣做的:

<script type="text/javascript"> 
    var clock = $('.clock').FlipClock(new Date(2013,8,30).getTime()/1000 - new Date().getTime()/1000, { 
     clockFace: 'DailyCounter', 
     countdown: true 
    }); 
</script> 

這倒計數,直到日期九月,30 2013 ...我沒有嘗試,卻又如此我不知道它的工作。

編輯:更正日期爲新的Date(2013,8,30)而不是新的日期(2013,9,30)作爲一個月計數從0開始不1.

+0

這是好事,但實際上這說「還剩64天」,但直到9月30日纔有所改變大約還剩35天。所以我在想事情應該是錯的? –

+0

是的,你是對的。它應該是新的日期(2013,8,30)。把你想要的月份 - 1作爲從0開始的月份計數而不是1.這可能是因爲它計算了月份是1月份的某個日期的差異,所以如果你想表示1月份,則必須使用0。代表9月,你必須使用8. 我已經編輯了答案,現在是正確的。 –

+0

噢,非常感謝。我給你的答案加一,但另一個答案得到了選定的答案因爲它也設置默認的時區UTC爲問題中所要求的。再次感謝:) –

0

我asssuming的.FlipClip()的第一個參數是倒數完成之前的時間量。這次「t」應該是現在和目標時間之間的差異。

var t = targetTimeInMs - currentTimeInMs; 

要獲取當前時間,請使用no-arg Date構造函數。

var currentTimeInMs = new Date().getTime(); 

要獲得目標時間,請提供帶參數的日期。下面是幾個例子從MDN:

var today = new Date(); 
var birthday = new Date("December 17, 1995 03:24:00"); 
var birthday = new Date(1995,11,17); 
var birthday = new Date(1995,11,17,3,24,0); 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date

我不能完全肯定,如果您需要提供毫秒作爲第一個參數到您的.FlipClip()函數。請參閱文檔/源代碼。然後使用Date對象的相應方法獲取所需的單位(秒?分鐘?小時?)和使用date.getSeconds(),getHours()等,請參閱MDN。)