台灣最大程式設計社群網站
線上人數
1859
 
會員總數:246570
討論主題:190029
歡迎您免費加入會員
討論區列表 >> Java Script/ Node.js >> 動態倒數到了之後如何歸零?
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
動態倒數到了之後如何歸零?
價值 : 10 QP  點閱數:2205 回應數:16
樓主

李培華
門外漢
0 10
152 20
發送站內信

這是一個能夠設定倒數日期的計時器
每次會取得現在的時間來做相減
可是要如何在他倒數歸零時停止整支程式呢?
他數字跑到0後都還會繼續減...變成負的




搜尋相關Tags的文章: [ javascript ] ,
本篇文章發表於2016-09-26 10:57
1樓
回應

Daimom
捐贈 VP 給 Daimom 檢舉此回應
你沒寫停止條件,當然會繼續跑...
範例:飯粒
我只寫當秒=0時停止,其他的判斷條件需要你自己補上。

本篇文章回覆於2016-09-26 15:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
其實我倒是有點無奈。我看一次全指點你一下好了@@"

你這因該是你上一個主題的延伸題吧。

本想看看你是否可以了解該如何改寫。沒想到你還是改成這樣子。
其實你想的還是有點複雜了。

我大約寫個簡單的範例給你。其它基本宣告的東西自已補足





這樣子你是否有看清楚了??

將觸發條件用一個數值處理。只要判斷他是正數就運行。
然後再用一個判斷式給與值就好。

這樣會不會比較明白呢?
本篇文章回覆於2016-09-26 16:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

李培華
檢舉此回應
好的 我後來用了變數去存他們之後 就可以了
很抱歉 我知道我資質不是很好QQ...
那如果是 我想讓他從資料庫去取時間來倒數要怎麼做呢?
我已經用data format去轉換成我目前的格式了 可是還是沒辦法跑..


本篇文章回覆於2016-09-27 16:51
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

李培華
檢舉此回應
因為我後來是要用Server端現在的時間做為startime
然後從database去取資料來當作endtime
而非直接設定秒數去倒數QQ..
本篇文章回覆於2016-09-27 22:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

迷路
捐贈 VP 給 迷路 檢舉此回應
既然是要從Server端撈資料
現在時間可以用time()函數取得現在時間的總秒數
停止時間可以用strtotime()函數取得時間格式字串轉換成的總秒數
這兩個函數的用法和取得的值如果不清楚請自行Google

JS端直接用秒數做到倒數
輸出時間時再用除的取天、時、分、秒的值
本篇文章回覆於2016-09-30 10:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
我只有一個提示給你

化成unixtime來處理,你會容易許多。
本篇文章回覆於2016-09-30 10:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

李培華
檢舉此回應
我用了unixtime時間戳
但是他計算的結果怪怪的
我用來倒數的是資料庫的時間2016-10-04 19:00:00
減掉現在的時間 5:17
但是出來卻是0天7時42分3秒
明明只有2小時阿QQ
天是對的 但是小時...



本篇文章回覆於2016-10-04 17:18
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

李培華
檢舉此回應
是晚上5:17
本篇文章回覆於2016-10-04 17:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應

迷路
捐贈 VP 給 迷路 檢舉此回應
請先把time()顯示出來,確認主機的時間
有可能主機的時區不是+8
本篇文章回覆於2016-10-04 17:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

李培華
檢舉此回應
謝謝大大!!
原來是我資料庫回傳的時間有問題 莫名其妙多了5小時
改成台北時區就OK了^^

不好意思 那我想再請問一下我把值丟進Javascript裡做運算
為甚麼頁面出來會是空白的呢?
看網頁的debug也沒有錯誤訊息





本篇文章回覆於2016-10-04 23:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
回應

迷路
捐贈 VP 給 迷路 檢舉此回應
第一,你的程式碼中沒有承接時間的物件,id="countdown"的物件
第二,你沒有呼叫第一次執行函數,在63行處加上clock(0);
這樣應該就會有東西出來了

附帶一提,time應該要宣告為全域變數
本篇文章回覆於2016-10-05 09:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
回應

迷路
捐贈 VP 給 迷路 檢舉此回應
另外,你現在的程式依然會持續倒數到負值去,總覺得前面大大回的都白費了
把46行到60行換成下面的看看

本篇文章回覆於2016-10-05 09:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
作者回應

李培華
檢舉此回應
謝謝大大 學到了很多~ 現在可以了

後來 我有去詢問我的同學 他說我的寫法似乎不對 幫我改成用ajax寫 一個server端 一個client端
可是現在的問題又變成無法歸0了
我知道要用clearinterval這個函數 但是插入了幾個地方 都還是不行
不得已只好又上來煩各位QQ

以下是前端notice.php


後端newnotice.php



剩下就是ajaxnotice.js檔


本篇文章回覆於2016-10-07 22:34
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
作者回應

李培華
檢舉此回應
要如何用clearinterval 來清除 newnotice這個function呢?
在deltaTimeServer=0的時候
本篇文章回覆於2016-10-07 22:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
15樓
作者回應

李培華
檢舉此回應
要如何用clearinterval清除newnotice這個function呢?
在deltaTimeServer=0時
本篇文章回覆於2016-10-07 22:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   

回覆
如要回應,請先登入.