台灣最大程式設計社群網站
線上人數
839
 
會員總數:244996
討論主題:188957
歡迎您免費加入會員
討論區列表 >> Java Script/ Node.js >> javascript時鐘,想設定特定時間的觸發事件
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
javascript時鐘,想設定特定時間的觸發事件
價值 : 5 QP  點閱數:1445 回應數:8

樓主

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

這是一個javascript的動態時鐘
是網路上找到的
程式碼在下方
timeValue += ((minutes < 10) ? " 0" : " ") + minutes + " 分";
timeValue += ((seconds < 10) ? " 0" : " ") + seconds + " 秒";
想請問上面這兩行是甚麼意思呢?

還有我如果想要設定在特定時間的時候觸發事件,要怎麼寫呢?
例如:下午2點5分6秒
像是if(timevalue=....)
因為它的表示法我不是很懂
希望大大無私教一下小弟,感激不盡QQ



<html>

<script language="JavaScript">

var now,hours,minutes,seconds,timeValue;
function showtime(){
now = new Date();
hours = now.getHours();
minutes = now.getMinutes();
seconds = now.getSeconds();
timeValue = (hours >= 12) ? "下午 " : "上午 ";
timeValue += ((hours > 12) ? hours - 12 : hours) + " 點";
timeValue += ((minutes < 10) ? " 0" : " ") + minutes + " 分";
timeValue += ((seconds < 10) ? " 0" : " ") + seconds + " 秒";
clock.innerHTML = timeValue;
setTimeout("showtime()",1000);
}
showtime();

</script>

<body onload="showtime();" >

<span id='clock'></span>
</body>
</html>





搜尋相關Tags的文章: [ javascript ] ,
本篇文章發表於2016-09-22 23:29
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
作者回應

李培華
檢舉此回應
我知道排版有些亂QQ 但還是麻煩大大們教一下我嗚嗚
本篇文章回覆於2016-09-22 23:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

Daimom
捐贈 VP 給 Daimom 檢舉此回應
var x = ((minutes < 10) ? " 0" : " ") + minutes + " 分";
這個意思同等於
if (minutes < 10)
x = 0
else
x = minutes

特定時間觸發事件..
if(hours==XX && minutes==XX.....)
doAnything()

本篇文章回覆於2016-09-23 08:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

Daimom
捐贈 VP 給 Daimom 檢舉此回應
更正 看錯了
上面條件 是 (minutes < 10) ? " 0" : " "
所以
if(minutes <10)
x= 0
else
x=" "
本篇文章回覆於2016-09-23 08:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
最有價值解答

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
這段只是為了補0用的而已

只是讓小於10的值,如 5 變成05顯示用而已。
這是很基本的東西。是if的簡寫法。
其使用的方式是


其實就跟

的意思是一樣的。
那只是簡寫法。

ps:幾乎所有的程式語法都有這樣子的用法。

另外~~~你還是學一下排版吧。這一篇可以讓你練習如何在這堭う屆C
你練習好我會幫你刪掉文章的。
本篇文章回覆於2016-09-23 09:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
另外你問的問題。其做法有兩種。
一種叫做直接比對法。

也就是直接去判斷hours 、minutes 、seconds 這三個值

另外一種就是判斷unixtime的時間
一般我會比較喜歡用第二種。出問題的機率比較不大。

這個網站給你參考。http://www.eion.com.tw/Blogger/?Pid=1148
這是在javascript的時間操作相關。

先去了解一下。自行按照我上面說的方式去寫出來。
不要每次都要等答案。我已經將觀念給你了。剩下的自已去想辦法實現吧。
本篇文章回覆於2016-09-23 09:40
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

李培華
檢舉此回應
好的,我懂了^^ 我先用簡單的方法寫出來
等之後有時間我在嘗試用較難的方法
感謝星空大和Daimom大

不過我有了新的問題
就是在我所設定的時間觸發時間條件內
我想讓他在那個時間點時開啟我的倒數計時器函數countdown()
可是到了那個時間就停止不動了...
可是如果換成比較簡單的alert和document.write就可以動
代表它是可執行的

是因為javascript是單執行緒嗎?
那要怎麼辦QQ




本篇文章回覆於2016-09-23 19:43
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

浩瀚星空
捐贈 VP 給 浩瀚星空 檢舉此回應
其實你這支程式主要的問題是在
21行的 var CountDownSecond=60;

因為你宣告的CountDownSecond變數。只會在showtime這個函數上有用。
自然你的CountDown根本就拿不到這個值。
而且也會因為你未宣告變數而想要做--的動作。程式會報錯誤而中止。

要了解私域變數跟全域變數的處理。

簡單來說,你將21行copy到第5行下。讓它變成全域變數
而21行的var給拿掉。(免得又被重新宣告成私域變數)

這樣重新試試看吧。



本篇文章回覆於2016-09-25 14:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

李培華
檢舉此回應
可以了! 感謝
本篇文章回覆於2016-09-26 10:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

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