JavaScript blog式日歷控件新算法
更新時間:2008年09月15日 10:18:32 作者:
近來要做一個記事本系統(tǒng),想找一個合適的日歷控件,但網(wǎng)上的都是那種日歷選擇控件。
于是到qq的記事本系統(tǒng)找了一個,但里面的算法有點落后,所以用了它的樣式自己寫了個。
使用說明:
程序比較簡單,代碼中都有說明,這里說說怎么使用。
首先是實例化一個Calendar,并設(shè)置參數(shù)。
參數(shù)說明:
Year:要顯示的年份
Month:要顯示的月份
SelectDay:選擇日期
onSelectDay:在選擇日期觸發(fā)
onToday:在當(dāng)天日期觸發(fā)
onFinish:日歷畫完后觸發(fā)
一般SelectDay設(shè)置成選擇了的日期,并在onSelectDay中設(shè)置一個函數(shù)用來設(shè)置這個日期的樣式,
例如實例里SelectDay設(shè)置成今個月10號并在那天樣式設(shè)為onSelect:
SelectDay: new Date().setDate(10),
onSelectDay: function(o){ o.className = "onSelect"; },
而onToday就用來設(shè)置今日日期的樣式,
例如實例里面把今天的日期的樣式設(shè)為onToday:
onToday: function(o){ o.className = "onToday"; },
在onFinish中可以放需要設(shè)置日歷的程序。
可以通過this.Year和this.Month獲取當(dāng)前日歷顯示的年份和月份。
對有數(shù)據(jù)的日期的也在這里設(shè)置,例如實例中是有一個當(dāng)前月份的有數(shù)據(jù)的日期列表,然后根據(jù)這個列表對相應(yīng)的日期進(jìn)行設(shè)置:
var flag = [10,15,20];
for(var i = 0, len = flag.length; i < len; i++){
this.Days[flag[i]].innerHTML = "<a href='javascript:void(0);' onclick=\"alert('日期是:"+this.Year+"/"+this.Month+"/"+flag[i]+"');return false;\">" + flag[i] + "</a>";
}
實例中是固定了這個日期列表,實際應(yīng)用中可以根據(jù)年份月份獲取對應(yīng)的日期列表,
個人推薦用年份月份通過ajax獲取。
程序中還有兩個有用的方法PreMonth(顯示上一個月)和NextMonth(顯示下一個月)。
測試代碼:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
程序比較簡單,代碼中都有說明,這里說說怎么使用。
首先是實例化一個Calendar,并設(shè)置參數(shù)。
參數(shù)說明:
Year:要顯示的年份
Month:要顯示的月份
SelectDay:選擇日期
onSelectDay:在選擇日期觸發(fā)
onToday:在當(dāng)天日期觸發(fā)
onFinish:日歷畫完后觸發(fā)
一般SelectDay設(shè)置成選擇了的日期,并在onSelectDay中設(shè)置一個函數(shù)用來設(shè)置這個日期的樣式,
例如實例里SelectDay設(shè)置成今個月10號并在那天樣式設(shè)為onSelect:
復(fù)制代碼 代碼如下:
SelectDay: new Date().setDate(10),
onSelectDay: function(o){ o.className = "onSelect"; },
而onToday就用來設(shè)置今日日期的樣式,
例如實例里面把今天的日期的樣式設(shè)為onToday:
onToday: function(o){ o.className = "onToday"; },
在onFinish中可以放需要設(shè)置日歷的程序。
可以通過this.Year和this.Month獲取當(dāng)前日歷顯示的年份和月份。
對有數(shù)據(jù)的日期的也在這里設(shè)置,例如實例中是有一個當(dāng)前月份的有數(shù)據(jù)的日期列表,然后根據(jù)這個列表對相應(yīng)的日期進(jìn)行設(shè)置:
復(fù)制代碼 代碼如下:
var flag = [10,15,20];
for(var i = 0, len = flag.length; i < len; i++){
this.Days[flag[i]].innerHTML = "<a href='javascript:void(0);' onclick=\"alert('日期是:"+this.Year+"/"+this.Month+"/"+flag[i]+"');return false;\">" + flag[i] + "</a>";
}
個人推薦用年份月份通過ajax獲取。
程序中還有兩個有用的方法PreMonth(顯示上一個月)和NextMonth(顯示下一個月)。
測試代碼:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
相關(guān)文章
關(guān)于js日期轉(zhuǎn)化為毫秒數(shù)“節(jié)省20%的效率和和節(jié)省9個字符“問題
最近在看松散耦合可定制百度的開源框架tangram.js目光突然就聚焦在一種獲得毫秒數(shù)的寫法2012-03-03javascript日期轉(zhuǎn)換 時間戳轉(zhuǎn)日期格式
javascript日期轉(zhuǎn)換 時間戳轉(zhuǎn)日期格式實現(xiàn)代碼,需要的朋友可以參考下。2011-11-11JS 日期操作代碼,獲取當(dāng)前日期,加一天,減一天
利用Js在一個文本框內(nèi)設(shè)置當(dāng)前的時間,兩個button,一個點一下加一天,一個點一下減一天。2010-03-03javascript實現(xiàn)的距離現(xiàn)在多長時間后的一個格式化的日期
距離現(xiàn)在多長時間后的一個格式化的日期,大家可以看看。2009-10-10