jquery代碼
//jquery輸出任意格式的時間
var zyljq = $.noConflict();
zyljq.fn.extend({
zyltimeformat:function(time, format){
//time請按照時間的格式輸入,不支持智能區分時間
//請確定輸入dddd/dd/dd,其中d爲合法的數字,分隔符可以隨意。
//不輸入則會按照當前的日期計算結果
//format請按照下列格式輸入yyyy|mm|dd,字母不能變
//可以把中間的分隔符變成你想要的分隔符。
if(time != ""){
var t = new Date(time);
}else{
var t = new Date();
}
var tf = function(i){return (i < 10 ? '0' : '') + i};
return format.replace(/yyyy|mm|dd/g, function(a){
switch(a){
case 'yyyy':
return tf(t.getFullYear());
break;
case 'mm':
return tf(t.getMonth() + 1);
break;
case 'dd':
return tf(t.getDate());
break;
}
});
}
});
例如
var aa = zyljq().zylformat("2013!11!01",'yyyy-mm-dd');
document.write(aa); //2013-11-01
aa = zyljq().zylformat("2013!11!01",'yyyy/mm/dd');
document.write(aa); //2013/11/01
注:修改於2013.12.12
在safari瀏覽器中,new Date(time)中,time的寫法不支持2013!11!01這種格式的輸入,在safari中,time在這個寫法時的分隔符只能是" / ",所以只能以2013/11/01的格式輸入,這樣的話,就顯得過於單一了,所以可以在time有輸入的時候,進行一個簡單的判斷。
if(time != ""){
//safari下,time必須是以“/”作爲間隔符纔可以。
//首先對time做處理。
time = time.replace(/[^\d]+/g,"/");
var t = new Date(time);
}else{
var t = new Date();
}
當然,這個判斷只是最簡單把非數字,變成“ / ”處理,並沒有做合法性的驗證,就假設使用者知道輸入格式吧。
這裏只是爲了,注意在safari瀏覽器下的這個兼容問題。
我這裏只寫了計算,並沒有加入時間的計算,如果你需要時間的那塊,那就自己再加一段代碼吧。
如果您發現代碼有問題,或者是某些測試數據出了問題,歡迎您的指正,讓大家共同進步。