[問題]週年倒數外掛
版主: 版主管理群
-
GeniusKiKi
- 竹貓忠實會員

- 文章: 1086
- 註冊時間: 2003-10-28 14:50
-
messagebox
- 竹貓忠實會員

- 文章: 981
- 註冊時間: 2003-02-24 23:34
$happy_year這個變數表示現在距離某週年還有多少秒~GeniusKiKi 寫:口厄~
我目前加上粗體顯示
想要在那段順便加上 JavaScript 特效~ XD
對了
如果要週年慶當天顯示
應該是判斷 ($text_year = 0) 吧?
$text_year = 0←語法錯誤~ 應該是$text_year == 0
比對時要用2個等於~
一個等於是將某變數指定為某值\r
不能這麼說~
當$text_year 為0時~只能說~距離週年不到24HR~
不表示當天~
喵嗚~
來慢慢寫各段時間的等待詞~ XD
$text_year = intval($happy_year/86400);
一天86400秒(大致上,我知道是24.25小時)~
想怎麼算就靈活運用吧~
-
GeniusKiKi
- 竹貓忠實會員

- 文章: 1086
- 註冊時間: 2003-10-28 14:50
-
messagebox
- 竹貓忠實會員

- 文章: 981
- 註冊時間: 2003-02-24 23:34
-
GeniusKiKi
- 竹貓忠實會員

- 文章: 1086
- 註冊時間: 2003-10-28 14:50
-
messagebox
- 竹貓忠實會員

- 文章: 981
- 註冊時間: 2003-02-24 23:34
期待大大能寫出很美的倒數計時外掛....messagebox 寫:謝了阿~~
剛剛去整理了一下現在在寫SERVICE的通訊協議~~
回來你就貼了~~~
我個人是真的認為這個沒什麼好發佈不發佈的~
真的是太小的程式了~
我順便分享我自己正在用的JAVA寫法....
將以下內容貼在TPL自己喜歡的位置即可\r
我是貼在overall_header.tpl的最下方\r
要修改日期的話改setcountdown(2004,1,1,00,00,00) <=裡面的數字
<!--<script type="text/javaScript">
document.write("<span id='clock'></span>");
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()",100);
}
showtime();
</script> -->
<!-- 倒數計時開始 -->
<script language="JavaScript1.2">
function setcountdown(theyear,themonth,theday,thehour,themin,thesec){yr=theyear;mo=themonth;da=theday;hr=thehour;min=themin;sec=thesec}
//Count down to date. format: year, month, day, hour, minute, second
setcountdown(2004,1,1,00,00,00)
//the event msg and msg when its the time of the event
var occasion="<b><font color=FF0000>距離2004年只剩下:</font></b>"
var message_on_occasion="<b><font color=FF0000; size=5>新年快樂!今天是2004年了喔!</font></b>"
//text hieght, width, bgcolor etc. subBlack default
var countdownwidth='40%'
var countdownheight='30px'
var countdownbgcolor=';'
var opentags='<span class="gensmall">'
var closetags='</span>'
//////////DO NOT EDIT PAST THIS LINE//////////////////
var montharray=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec")
var crosscount=''
function start_countdown(){
if (document.layers)
document.countdownnsmain.visibility="show"
else if (document.all||document.getElementById)
crosscount=document.getElementById&&!document.all?document.getElementById("countdownie") : countdownie
countdown()
}
if (document.all||document.getElementById)
document.write('<span id="countdownie" style="width:'+countdownwidth+'; background-color:'+countdownbgcolor+'"></span>')
window.onload=start_countdown
function countdown(){
var today=new Date()
var todayy=today.getYear()
if (todayy < 1000)
todayy+=1900
var todaym=today.getMonth()
var todayd=today.getDate()
var todayh=today.getHours()
var todaymin=today.getMinutes()
var todaysec=today.getSeconds()
var todaystring=montharray[todaym]+" "+todayd+", "+todayy+" "+todayh+":"+todaymin+":"+todaysec
futurestring=montharray[mo-1]+" "+da+", "+yr+" "+hr+":"+min+":"+sec
dd=Date.parse(futurestring)-Date.parse(todaystring)
dday=Math.floor(dd/(60*60*1000*24)*1)
dhour=Math.floor((dd%(60*60*1000*24))/(60*60*1000)*1)
dmin=Math.floor(((dd%(60*60*1000*24))%(60*60*1000))/(60*1000)*1)
dsec=Math.floor((((dd%(60*60*1000*24))%(60*60*1000))%(60*1000))/1000*1)
//if on day of occasion
if(dday<=0&&dhour<=0&&dmin<=0&&dsec<=1&&todayd==da){
if (document.layers){
document.countdownnsmain.document.countdownnssub.document.write(opentags+message_on_occasion+closetags)
document.countdownnsmain.document.countdownnssub.document.close()
}
else if (document.all||document.getElementById)
crosscount.innerHTML=opentags+message_on_occasion+closetags
return
}
//if passed day of occasion
else if (dday<=-1){
if (document.layers){
document.countdownnsmain.document.countdownnssub.document.write(opentags+"倒數計時事件時間已過!"+closetags)
document.countdownnsmain.document.countdownnssub.document.close()
}
else if (document.all||document.getElementById)
crosscount.innerHTML=opentags+"目前沒有倒數事件"+closetags
return
}
//else, if not yet
else{
if (document.layers){
document.countdownnsmain.document.countdownnssub.document.write(opentags+occasion+ "倒數計時:"+dday+ " 天, "+dhour+" 小時, "+dmin+" 分 "+dsec+" 秒"+closetags)
document.countdownnsmain.document.countdownnssub.document.close()
}
else if (document.all||document.getElementById)
crosscount.innerHTML=opentags+occasion+dday+ " 天, "+dhour+" 小時, "+dmin+" 分 "+dsec+" 秒 "+closetags
}
setTimeout("countdown()",1000)
}
</script>
<!-- End of javascript -->
<ilayer id="countdownnsmain" width=&{countdownwidth}; height=&{countdownheight}; bgColor=&{countdownbgcolor}; visibility=hide><layer id="countdownnssub" width=&{countdownwidth}; height=&{countdownheight}; left=0 top=0></layer></ilayer>
<!-- 倒數計時結束 -->
-
GeniusKiKi
- 竹貓忠實會員

- 文章: 1086
- 註冊時間: 2003-10-28 14:50
我覺得用JAVA會比較方便的原因是...
論壇才架好沒多久...與其去倒數論壇週年不如去倒數各種重大節慶之類的
像是聖誕節...過年...XX節這些....
這樣子用JAVA修改會比較容易點(對我來說啦...因為不太會PHP語法...)
再推薦下面的JAVA給大家...一樣是加在自己喜歡的地方\r
可以顯示論壇已運作 X年X個月又X天...
要修改開始計算的日期的話document.write(HowLongSince(11,07,2003)); <=改成你要的
示範網站 http://aikenlin.idv.tw 我是放在下面的 overall_footer.tpl
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function HowLongSince(startmonth, startdate, startyear) {
sdate=startdate;
smonth=startmonth-1;
syear=startyear;
var DaysInMonth = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
today = new Date()
var thisyear = today.getFullYear();
var thismonth = today.getMonth();
var thisdate = today.getDate();
mstart = new Date(syear,(smonth==12?1:smonth+1),1);
days1 = (mstart - new Date(syear,smonth,sdate))/(24*60*60*1000)-1;
mend = new Date(thisyear,thismonth,1);
days2 = (new Date(thisyear,thismonth,thisdate) - mend)/(24*60*60*1000)+1;
dayst = days1 + days2;
if (dayst >= DaysInMonth[smonth]) {
AddOneMonth = 1;
dayst -= DaysInMonth[smonth];
}
else AddOneMonth = 0;
ydiff1 = thisyear-mstart.getFullYear();
mdiff1 = thismonth-mstart.getMonth()+AddOneMonth;
if (mdiff1 >11) { mdiff1=0; ydiff1++; }
if (mdiff1 < 0) { mdiff1 = mdiff1 + 12; ydiff1--; }
temp = (ydiff1==0?"":(ydiff1==1?ydiff1+" 年, ":ydiff1 + " 年, "));
temp += (mdiff1==0?"0 月 ":(mdiff1==1?mdiff1+" 個月又 ":mdiff1+" 個月又 "));
temp += (dayst==0?"0 天":(dayst==1 ? " 1 天." : dayst + " 天" ));
return temp;
}
// End -->
</script>
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
document.write("本論壇已運作 ");
document.write(HowLongSince(11,07,2003));
// this is the date your site was created. day,month,year
// End -->
</script>
論壇才架好沒多久...與其去倒數論壇週年不如去倒數各種重大節慶之類的
像是聖誕節...過年...XX節這些....
這樣子用JAVA修改會比較容易點(對我來說啦...因為不太會PHP語法...)
再推薦下面的JAVA給大家...一樣是加在自己喜歡的地方\r
可以顯示論壇已運作 X年X個月又X天...
要修改開始計算的日期的話document.write(HowLongSince(11,07,2003)); <=改成你要的
示範網站 http://aikenlin.idv.tw 我是放在下面的 overall_footer.tpl
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function HowLongSince(startmonth, startdate, startyear) {
sdate=startdate;
smonth=startmonth-1;
syear=startyear;
var DaysInMonth = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
today = new Date()
var thisyear = today.getFullYear();
var thismonth = today.getMonth();
var thisdate = today.getDate();
mstart = new Date(syear,(smonth==12?1:smonth+1),1);
days1 = (mstart - new Date(syear,smonth,sdate))/(24*60*60*1000)-1;
mend = new Date(thisyear,thismonth,1);
days2 = (new Date(thisyear,thismonth,thisdate) - mend)/(24*60*60*1000)+1;
dayst = days1 + days2;
if (dayst >= DaysInMonth[smonth]) {
AddOneMonth = 1;
dayst -= DaysInMonth[smonth];
}
else AddOneMonth = 0;
ydiff1 = thisyear-mstart.getFullYear();
mdiff1 = thismonth-mstart.getMonth()+AddOneMonth;
if (mdiff1 >11) { mdiff1=0; ydiff1++; }
if (mdiff1 < 0) { mdiff1 = mdiff1 + 12; ydiff1--; }
temp = (ydiff1==0?"":(ydiff1==1?ydiff1+" 年, ":ydiff1 + " 年, "));
temp += (mdiff1==0?"0 月 ":(mdiff1==1?mdiff1+" 個月又 ":mdiff1+" 個月又 "));
temp += (dayst==0?"0 天":(dayst==1 ? " 1 天." : dayst + " 天" ));
return temp;
}
// End -->
</script>
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
document.write("本論壇已運作 ");
document.write(HowLongSince(11,07,2003));
// this is the date your site was created. day,month,year
// End -->
</script>
-
GeniusKiKi
- 竹貓忠實會員

- 文章: 1086
- 註冊時間: 2003-10-28 14:50
-
messagebox
- 竹貓忠實會員

- 文章: 981
- 註冊時間: 2003-02-24 23:34
OK~我來說說我的看法~
基本我~~我個人非常討厭JAVA SCRIPT~
當然~~適量的使用是接受的~~
我自己的網站聊天室~寫了一個附屬於聊天室的免費留言版~
只要註冊為會員~~就可以擁有~~
幾個月下來~~
當我去逛會員留言版時~
幾乎是3個人就有1個人~巨量使用JAVA SCRIPT
偏偏我的瀏覽器不爭氣~~
常常開不到一半就跟我說~
作業無效~視窗即將關閉~~
他們眼中的很漂亮很炫的SCRIPT~
在我眼中~~我只覺得是浪費資源的怪物~~
有興趣的可以前往我的聊天室(不是大廳)~~
裡面的SCRIPT一樣是很多~(為了減少SERVER負擔,加快聊天畫面更新)
但是~~~從來沒讓我當過一次瀏覽器~~
當然~~我整隻聊天室程式所用的SCRIPT絕對比上面那2隻程式其中一隻還少~
為什麼呢~
製造效果~~固然很好~~
但通常~~反效果比效果還多~~
使用CLIENT端的SCRIPT主要用途還是在降低SERVER的負擔~
而不是造成SERVER更大的負擔~
甚至~~連CLIENT也造成負擔~
基本我~~我個人非常討厭JAVA SCRIPT~
當然~~適量的使用是接受的~~
我自己的網站聊天室~寫了一個附屬於聊天室的免費留言版~
只要註冊為會員~~就可以擁有~~
幾個月下來~~
當我去逛會員留言版時~
幾乎是3個人就有1個人~巨量使用JAVA SCRIPT
偏偏我的瀏覽器不爭氣~~
常常開不到一半就跟我說~
作業無效~視窗即將關閉~~
他們眼中的很漂亮很炫的SCRIPT~
在我眼中~~我只覺得是浪費資源的怪物~~
有興趣的可以前往我的聊天室(不是大廳)~~
裡面的SCRIPT一樣是很多~(為了減少SERVER負擔,加快聊天畫面更新)
但是~~~從來沒讓我當過一次瀏覽器~~
當然~~我整隻聊天室程式所用的SCRIPT絕對比上面那2隻程式其中一隻還少~
為什麼呢~
製造效果~~固然很好~~
但通常~~反效果比效果還多~~
使用CLIENT端的SCRIPT主要用途還是在降低SERVER的負擔~
而不是造成SERVER更大的負擔~
甚至~~連CLIENT也造成負擔~
-
messagebox
- 竹貓忠實會員

- 文章: 981
- 註冊時間: 2003-02-24 23:34
就你所舉的例子來說~~aiken 寫:找不到你的網站裡面你說的地方咧....好神秘的地方...
我目前使用了幾隻JAVA..但是用意都不是製造特殊效果很炫.....
除了倒數..論壇啟用時間...標題列時鐘...搜尋引擎...
還有加入我的最愛...email推薦...
還有幾個是拿來偵測使用者的使用環境的...(瀏覽器, 解析度, 彩度, JAVA支援)
當他們的使用環境跟我原先設計的最佳瀏覽環境不一樣的時候會有不同的文字提醒他們注意..像這樣的偵測功能好像只有JAVA能夠做到...所以不用JAVA也不行...
這些性質的SCRIPT並不會耗費太多的CPU資源~~
但是~~通常~~這些SCRIPT也是最不被注意~~
你的出發點是對的~~
但是~~一般不是~~
都盡可能讓自己的頁面花俏~~
剛剛那篇文章沒有批評任何一種程式語言的用途~
只是覺得~現在濫用SCRIPT的情況真的到有點嚴重~~
所以我個人對SCRIPT有點感冒~~
至於說找不到我說的地方~
在我的首頁
http://onlyou.org/
隨便輸入暱稱~~
勾選跳過大廳~~然後選登入~
那個畫面~~
你在訊息畫面看到的文字~都是SCRIPT作成的~~
還有一個是切換框架~~
基本上~~裡面用到的SCRIPT都是為了降低SERVER的負擔才有的~
-
messagebox
- 竹貓忠實會員

- 文章: 981
- 註冊時間: 2003-02-24 23:34
我所謂的浪費SERVER資源~並不是指浪費SERVER的CPU資源~aiken 寫:就大家一起討論.....當然每個站台的導向可能不太一樣...
選擇自己適合的就好嚕
我有一點點不太懂....
當你使用JAVA的時候...
程式的encoding應該是在使用者的瀏覽器端進行的吧...
那怎麼說會比較花費server端的資源呢?
像是你用JAVA的聊天室...那應該是會比用SQL的聊天室要比較省server的資源吧\r
關於這邊我不太了解哩....
怎樣才對server端比較好....
而是頻寬~
當你在你的文件中加入一個對效能沒有幫助且程式碼非常多~~
雖然說只是浪費一點點的流量~
但那確實是一個資源~~
我的聊天室只是利用JAVA SCRIPT來節省我每次重整畫面所需要傳送的資料~
並沒用利用SCRIPT來做任何運算~~
純正的JAVA(不是SCRIPT)所寫成的聊天室~是利用SERVER-CLIENT的方式~
並不是使用HTTP通訊協定~
沒發言狀況下~
我的畫面是6秒更新一次~
每次更新扣除檔頭只花20bytes的流量~~
或許你不覺得有什麼~
但當你機器頻寬是只有384K的ADSL時~~
你就能理解我斤斤計較的原因~
尤其當你租用虛擬主機時~~每1bytes的資料都是錢~
當省則省~~所以才會運用JAVA SCRIPT來節省傳輸量~
另外~我的聊天室除了安全原則下~將會員帳號丟在SQL上~
其他都是利用文字檔來儲存~~
這是因為聊天室的運作原理~
用SQL來存取資料並不會比較有效率~~
當你在一秒內~~相同檔案更新10多次以上~
你就可以知道SQL多麼沒有效率~~~
至於單純利用JAVA SCRIPT~~
我想應該是不能做出聊天室的效果吧~~
畢竟他是屬於CLIENT端的直譯語言~~