2016-02-28 139 views
0

這可能是一個很大的問題,但我完全卡住,所以任何幫助表示讚賞。流星:倒數計時器

我想創建一個從星期日到星期日運行的倒計時器,並且在本週結束時重新開始。我曾嘗試在大氣中使用倒計時軟件包,但文檔有限,似乎從未起作用。我也嘗試下載並運行第三方jquery包,但他們似乎總是碰撞流星。

難道有人指向我正確的方向或告訴我如何在流星中做到這一點?

的具體細節:用於運行拍賣

  • 倒計時計時器。
  • 拍賣運行7天,週日開始於中午12點結束7日後 。
  • 拍賣重置並在7天后重新開始。
  • 倒計時器將在多個頁面上的用戶可見。要被顯示
  • 倒數計時器單元 - (。例如 6天,3小時55分鐘,22秒直到下一個拍賣 開始)天,小時,分鐘,秒
+0

什麼是定時器單元的正確格式timeRemaining?每天,小時,分鐘,秒?數據是否需要反應? –

+0

日,時,分,秒會很好。我不確定你是什麼意思的反應。計時器將於星期日開始,並於星期日結束,然後重新開始。 – bp123

+0

你需要對你的想法更具體。需要顯示哪些數據?單位是什麼?因爲基於單位,代碼可以改變。此外,數據是否需要顯示或只是爲了保存到mongo? –

回答

1

的問題是太大。但我可以建議與此合作的一小步。您的拍賣計劃需要有一個endDateTime來存儲價值(即使它將在週日開始/結束)。在你需要顯示的定時器模板,設置一個ReactiveVar爲數字(倒計時),一個ReactiveVar爲字符串(顯示導致)

Template['countDownTemplate'].created = function() { 
    var due, dueDate, duration, now, num, self; 
    self = this; 

    dueDate = Template.instance().data['auction']['endDateTime']; 
    now = moment.utc(); 

    due = moment.utc(dueDate, 'YYYY-MM-DD hh:mm:ss'); 

    duration = moment.duration(due.diff(now)); 
    num = Math.floor(duration.asSeconds()); 

    if (num >= 0) { 
     self['remaining'] = new ReactiveVar<number>(num); 
     self['timeRemaining'] = new ReactiveVar<string>(convertPeriod(num)); 
     self['interval'] = Meteor.setInterval((function() { 
      var remaining; 
      remaining = self['remaining'].get(); 
      self['remaining'].set(remaining - 1); 
      self['timeRemaining'].set(convertPeriod(self['remaining'].get())); 
      if (remaining === 0) { 
       Meteor.clearInterval(self['interval']); 
      } else { 
       remaining = Math.floor(moment.duration(due.diff(now)).asSeconds()); 
      } 
     }), 1000); 
    } 
}; 

(該convertPeriod將立足於remaining數轉換到您正確的格式)

剩下的只是如何顯示與convertPeriod

+0

感謝泰國人,我會試一試,看看我走了。 – bp123