//如果大家想要補充,請留言 /** * 判斷指定名稱的復選框是否被選中 * * @param {} * chname復選框名稱 */ function chkCheckCha(chname) { var obj = jQuery("[name='" + chname + "']"); var isCheck = false; for (var i = 0; i < obj.length; i++) { if (obj[i].checked == true) { isCheck = true; break; } } return isCheck; } /** * 得到指定名稱的復選框被選中個數 * * @param {} * chname * @return {} */ function checkChangedOnly(chname) { var obj = jQuery("[name='" + chname + "']"); var count = 0; for (var i = 0; i < obj.length; i++) { if (obj[i].checked == true) { count++; } } return count; } /** * 得到指定名稱的單個被選中的復選擇框的值 * * @param {} * chname */ function getValueCheckOnly(chname) { var str = ""; jQuery("[name='" + chname + "'][checked]").each(function() { str += jQuery(this).val(); }); return str; } /** * 得到多個復選框的值 * * @param {} * chname */ function getCheckVals(chname) { var str = ""; jQuery("[name='" + chname + "'][checked]").each(function() { str += jQuery(this).val() + "@"; }); return str.substring(0, str.length - 1); } function getCheckHidden(chname,tagId){ var strval = getCheckVals(chname); var arr = ""; var temp = strval.split("@"); for(var i = 0;i<temp.length;i++){ var val = temp[i]; var id = tagId+val; var tag = $("#"+id).val(); arr+=tag+"@"; } return arr; } /** * 得到一些復選框的值 復選框的值中是否包含有","若無則用","將多個值組合 若有則先將值用","隔開再用","組合 * * @param {} * chname */ function getSomeChVals(chname) { var str = ""; jQuery("[name='" + chname + "'][checked]").each(function() { var temp = jQuery(this).val(); if (temp.indexOf(",") == -1) { str += temp + ","; } else { var tempValue = temp.split(","); str += tempValue[0] + ","; } }); return str.substring(0, str.length - 1); } function getAnyCheckValue(chname) { var str = getCheckVals(chname); var tstr = str.split("@"); var result = ""; for (var i = 0; i < tstr.length; i++) { var temp = tstr[i].split(","); result += temp[0] + ","; } return result.substring(0, result.length - 1); } /** * 得到指定名稱的有多個值的多個復選框的值 * * @param chname */ function getCheckValues(chname) { var str = ""; var sids = ""; var snames = ""; jQuery("[name='checkbox'][checked]").each(function() { var strval = jQuery(this).val(); var temp = strval.split(","); var sid = temp[0]; var sname = temp[1]; sids += sid + ","; snames += sname + ", "; }); str = sids.substring(0, sids.length - 1) + "|" + snames.substring(0, snames.length - 2); return str; } /** * 判斷復選框的狀態 * * @param {} * chname */ function decideCheckState(chname) { var str = getCheckVals(chname); var tstr = str.split("@"); var temp = ""; for (var i = 0; i < tstr.length; i++) { var tval = tstr[i]; var tem = tval.substring(tval.length - 1, tval.length); temp += tem; } return temp; } // 復選框的值是否全為0 function checkStringz(chname) { var regex = /^[0]*$/g; var source = decideCheckState(chname); return regex.test(source); } // 復選框的值是否全為1 function checkStringO(chname) { var regex = /^[1]*$/g; var source = decideCheckState(chname); return regex.test(source); } function decideStrallz(source) { var regex = /^[0]*$/g; return regex.test(source); } function decideStrallO(source) { var regex = /^[1]*$/g; return regex.test(source); } /** * 復選框全選v * * @param {} * chname */ function checkboxAll(chname) { jQuery("[name='" + chname + "']").each(function() { jQuery(this).attr("checked", true); }); } /** * 復選框反選 * * @param {} * chname */ function inverSelect(chname) { jQuery("[name='" + chname + "']").each(function() { if (jQuery(this).attr("checked")) { jQuery(this).attr("checked", false); } else { jQuery(this).attr("checked", true); } }); } function selects(all_id,chname){ $("#"+all_id).click(function(){ if($(this).attr("checked")){ checkboxAll(chname); }else{ clearSelect(chname); } }); } function mouseHover(obj){ alert($(obj).attr("style")); } /** * 取消全選或反選 * * @param {} * chname */ function clearSelect(chname) { jQuery("[name='" + chname + "']").each(function() { jQuery(this).attr("checked", false); }); } /** * 點擊刪除按鈕時使用 */ function dele(chname) { var b = chkCheckCha(chname); if (!b) { alert("請選擇要刪除的記錄"); return false; } else if (confirm("刪除后無法恢復,確定刪除嗎?")) { jQuery("[name='form1']").submit(); } else { return false; } } /** * 校驗時間格式 * * @param {} * timevale * @return {} */ function checkTime(timevale) { var regex = /^(([0-1][0-9])|([2][0-4]))(\:)[0-5][0-9](\:)[0-5][0-9]$/g; var b = regex.test(timevale); return b; } /** * 校驗Ip地址格式 * * @param {} * ipvale */ function checkIp(ipvale) { var regex = /^([1-9]|[1-9]\d|1\d{2}|2[0-1]\d|22[0-3])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3}$/; var b = regex.test(ipvale); return b; } /** * 是否是由字母或數字組成的字符串 * * @param {} * letVale */ function checkLetOrNum(letVale) { var regex = /^([a-zA-Z_]{1})([\w]*)$/g; var b = regex.test(letVale); return b; } /** * 取字符串的第index的字符 * * @param {} * source * @param {} * index */ function interceptStr(source, index) { var temp = source.charAt(index); return parseInt(temp); } /** * 檢查字符串中beindex位置到endindex位置之間是否全由targer組成 * * @param {} * source * @param {} * targer * @param {} * beindex * @param {} * endindex */ function checkStr(source, targer, beindex, endindex) { var flag = false; for (var i = beindex; i <= endindex; i++) { var temp = source.charAt(i); if (targer == temp) { flag = true; } } return flag; } /** * 驗證字符串中的某一段是否全為0 * * @param {} * source * @param {} * begin * @param {} * end * @return {} */ function checkString(source, begin, end) { var regex = /^[0]*$/g; var temp = source.substring(begin, end + 1); //alert("###temp=="+temp); return regex.test(temp); } /** * 判斷兩個字符串是否想等 相等返回true否則返回false * * @param {} * source * @param {} * target */ function decideString(source, target) { return (source == target) ? true : false; } /** * 將字符串轉換成數字 * @param val * @return */ function stringToNumber(val){ return Number(val); } /** * 驗證是否是整數或小數 * @param source * @return */ function checkIntAndFloat(source){ var regex = /^[0-9]+(\.[0-9]+)?$/g; return regex.test(source); } /** * 驗證是否是整數或只有一位小數點的小數 * * @param {} * source * @return {} */ function checkFloat(source) { // var regex=/^[1-9]d*.d{1}|0.d{1}[1-9]d{1}$/g; var regex = /^[0-9]+\d*[\.\d]?\d{0,1}$/g; return regex.test(source); } /** * 驗證是否兩位數以內的正整數 * * @param {} * source * @return {} */ function checkTwoInt(source) { var regex = /^[1-9][0-9]?$/g; //兩位數以內的正整數 return regex.test(source); } /** * 驗證數字 * * @param {} * source * @return {} */ function checkNumber(source) { var regex = /^(\-|\+)?\d+(\.\d+)?$/; return regex.test(source); } /** * 驗證是否是兩位小數的正實數 * * @param {} * source * @return {} */ function checkTowLenFloat(source) { var regex = /^[0-9]+(.[0-9]{2})?$/g;//只能輸入有兩位小數的正實數 return regex.test(source); } /** * 驗證是否是兩位或一位小數的正實數 * * @param {} * source * @return {} */ function checkTowLenFloatt(source) { var regex = /^[0-9]+(.[0-9]{1,2})?$/g;//只能輸入有兩位小數的正實數 return regex.test(source); } /** * 驗證是否是整數或只有2位小數的數 * * @param {} * source */ function checkTowFloat(source) { var regex = /^[1-9]+\d*[\.\d]?\d{0,2}$/g; return regex.test(source); } /** * 驗證是否有空格 * * @param {} * source */ function checkSpace(source) { var regex = /\s/g; return regex.test(source); } /** * 檢查一個數是否是整數則位數在8以內 * * @param {} * source */ function checkIntLeng(source) { var regex = /^[1-9]{1}[0-9]{1,7}$/g return regex.test(source); } /** * 檢查一個數是否是整數則位數在2以內 * * @param {} * source */ function checkIntTwoLeng(source) { var regex = /^[1-9]{1}[0-9]{1,2}$/g return regex.test(source); } /** * 驗證正整數 * * @param {} * source */ function checkInt(source) { // var regex=/^[1-9]d*$/g var regex = /^[0-9]*[1-9][0-9]*$/g return regex.test(source); } /** * 驗證非負數 * * @param {} * source */ function checkNegative(source) { var regex=/^[1-9]\d*|0$/g return regex.test(source); } /** * 分割IP地址 * * @param {} * ipAddress */ function getIpNum(ipAddress) { var ip = ipAddress.split("."); var a = parseInt(ip[0]); var b = parseInt(ip[1]); var c = parseInt(ip[2]); var d = parseInt(ip[3]); var ipNum = a * 256 * 256 * 256 + b * 256 * 256 + c * 256 + d; return ipNum; } /** * 判斷IP大小 */ function decideIp(startIp, endIp) { var ip1 = getIpNum(startIp); var ip2 = getIpNum(endIp); return (ip2 > ip1) ? true : false; } /** * 驗證是否全是空格 * * @param {} * source * @return {} */ function checkAllSpace(source) { var regex = /^\s+$/g return regex.test(source); } /******************************************************************************* * openWindow(url)函數:彈出窗口 * url:路徑 * left:左邊的距離 * top:上邊的距離 * width:窗口寬度 * * height:窗口高度 * resize:yes時可調整窗口大小,no則不可調 * ******************************************************************************/ function openWindow(url,width, height, resize) { var mleft = (screen.width - width) / 2; var mtop = (screen.height - height) / 2; window.open(url,"","height=" + height + ",width=" + width + ",location=no,menubar=no,resizable=" + resize + ",scrollbars=yes,status=no,toolbar=no,left=" + mleft + ",top=" + mtop + ""); } function openWindow(url,width, height, resize,scrollbars) { var mleft = (screen.width - width) / 2; var mtop = (screen.height - height) / 2; window.open(url,"","height=" + height + ",width=" + width + ",location=no,menubar=no,resizable=" + resize + ",scrollbars="+scrollbars+",status=no,toolbar=no,left=" + mleft + ",top=" + mtop + ""); } /** * * @param {} url * @param {} width * @param {} height */ function showNewWind(url,width,height){ //alert(url); var showresult = window.showModalDialog(url,window,"dialogWidth="+width+"px;dialogHeight="+height+"px;location=no;status=no;scroll=yes"); return showresult; } /** * * @param {} url * @param {} width * @param {} height */ function showNewLessWind(url,width,height){ //alert(url); var showresult = window.showModelessDialog(url,window,"dialogWidth:"+width+"px;location=no;status:no;dialogHeight:"+height+"px"); return showresult; } function decideLeve(source){ var regex=/^[a-zA-Z]{1}$/g; return regex.test(source); } function openBlankWindow(url){ openWindow(url,"650","400","yes"); } /** * 時間變化 * @param {} source * @param {} addval */ function dateToString(source,addval){ var paddval = parseInt(addval);//增量(秒) var temp = source.split(":"); var thrs = parseInt(temp[0])*3600;//小時化成秒 var tmis = parseInt(temp[1])*60;//分鍾化成秒; var tss = parseInt(temp[2]);//秒 var totals = parseInt(thrs)+parseInt(tmis)+parseInt(tss)+parseInt(paddval); var result = timeTohhmmss(totals); return result; } /** * 由秒數轉化成hh:mm:ss格式 * @param {} seconds */ function timeTohhmmss(seconds){ var hh; var mm; var ss; if(seconds==null || seconds<0){ return; } var pseconds = parseInt(seconds); //得到小時 hh = pseconds/3600|0; pseconds = parseInt(pseconds)-parseInt(hh)*3600; if(parseInt(hh)<10){ hh="0"+hh; } if(parseInt(hh)>=24){ hh="00"; } //得到分鍾 mm = parseInt(pseconds)/60|0; //得到秒 ss = parseInt(pseconds)-parseInt(mm)*60; if(parseInt(mm)<10){ mm = "0"+mm; } if(parseInt(ss)<10){ ss = "0"+ss; } return hh+":"+mm+":"+ss; } /** 驗證身份證號是否正確 **/ function isCardNo(num){ if(isNaN(num)){ alert("輸入的身份證號不是數字!"); return false; } var len = num.length; if(len<15 || len>18){ alert("輸入的身份證號碼長度不正確定!應為15位或18位"); return false; } var re15 = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/; var re18 = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/; var res = (re15.test(num) || re18.test(num)); if(res==false){ alert("輸入的身份證號格式不正確!"); return false; } return res; } /** * 判斷字符串是否為空,若為空則返回true否則返回false * @param source * @return true或者false **/ function isEmpty(source){ var str = source.replace(/(^\s*)|(\s*$)/g,""); if(str=="" || str.toLowerCase()=="null" || str.length<=0){ return true; }else{ return false; } } /** * 驗證是否為電話號碼(座機) * * @param {} * source */ function isTelephone(source) { var regex = /^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$/ return regex.test(source); //search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1 } /** * 驗證是否為手機號碼(移動手機) * * @param {} * source */ function isMobilePhone(source) { var regex = /^((\(\d{3}\))|(\d{3}\-))?1\d{10}/; return regex.test(source); } /** * 驗證是否為電子郵箱 * * @param {} * source */ function isEmail(source) { var regex = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/; if(source.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1){ return true; }else{ alert("電子郵箱格式不正確"); return false; } } /** * *驗證是否為郵編 * @param * source */ function isZip(source){ var regex=/^[1-9]\d{5}$/; return regex.test(source); } /** * *驗證字符串是否是中文 * **/ function isChines(source){ var regex = /^[\u4E00-\u9FA5]+$/; return regex.test(source); } /** 生成指定位數的隨機整數 **/ function getRandomNum(count){ var arr = new Array; var reNum = ""; for(var i=0;i<count;i++){ arr[i] = parseInt(Math.random()*10); reNum += String(arr[i]); } return reNum; } function random(min,max){ return Math.floor(min+Math.random()*(max-min)); } /* *判斷包含關系 *string:原始字符串 *substr:子字符串 *isIgnoreCase:忽略大小寫 */ function jsContains(string,substr,isIgnoreCase) { if(isIgnoreCase) { string=string.toLowerCase(); substr=substr.toLowerCase(); } var startChar=substr.substring(0,1); var strLen=substr.length; for(var j=0;j<string.length-strLen+1;j++) { if(string.charAt(j)==startChar)//如果匹配起始字符,開始查找 { if(string.substring(j,j+strLen)==substr)//如果從j開始的字符與str匹配,那ok { return true; } } } return false; } /** * 隨機數UUID * @return */ function makeUUID() { var S4 = function () { return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1); }; //return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4()); return (S4() + S4() + S4() + S4() + S4() + S4() + S4() + S4()); } /** * 得到項目的基地址 * @return {} */ function getContextPath() { var strFullPath = window.document.location.href; var strPath = window.document.location.pathname; var pos = strFullPath.indexOf(strPath); var prePath = strFullPath.substring(0, pos); var path = strPath.substring(0, strPath.substr(1).indexOf('/') + 1); return path; } /** * 顯示提示信息 * @param {Object} msg */ function showInfoMessage(msg) { Ext.MessageBox.show({ width:320, buttons:Ext.Msg.OK, msg:msg, icon:Ext.MessageBox.INFO, title:"系統提示" }); } /** * 給URL追加參數 * @param {} url * @param {} parameter 參數名 * @param {} value 參數值 */ function urlAddParmert(url,parameter,value){ var buf = new StringBuffer(); if(!isEmpty(url)){ buf.append(url); if(url.indexOf("?") > -1){ //已經有參數 buf.append("&"); }else{ buf.append("?"); } buf.append(parameter); buf.append("="); buf.append(value); } return buf.toString(); } /** * 得到文件的擴展名 * @param {} filename */ function getFileExt(filename){ var d=/\.[^\.]+$/.exec(filename); var ext = new String(d); var s = ext.toLowerCase(); return s; } //字符串編碼 function strEncode(source){ return encodeURIComponent(source); } //字符串解碼 function strDencode(source){ return decodeURIComponent(source); } /** * 字符串轉正形 * @param source * @returns */ function strParseInt(source){ if(isEmpty(source) || isNaN(source)){ return 0; } return parseInt(source); } /** * 字符串轉Float形 * @param source * @returns */ function strParseFloat(source){ if(isEmpty(source) || isNaN(source)){ return 0; } return parseFloat(source); } /** * 獲取今天日期,星期幾 * @returns */ function getTodayDate(){ var now = new Date(); var yy = now.getFullYear(); var mm = now.getMonth()+1; var dd=now.getDate(); var day = new Array(); day[0] = "星期日"; day[1] = "星期一"; day[2] = "星期二"; day[3] = "星期三"; day[4] = "星期四"; day[5] = "星期五"; day[6] = "星期六"; return( yy + '年' + mm + '月'+ dd +'日 '+day[now.getDay()]); } /** * 獲取一段時間中含有的周末數量 * @param beginDate * @param endDate * @returns {number} */ function getIntervalWeekends(beginDate,endDate) { var weekends = 0; var dateDiffDays = dateDiff("d", beginDate, endDate)+1; if(dateDiffDays>0){ for(var i=0;i<dateDiffDays;i++){ var newDate = dateAdd("d",i,beginDate); if(newDate.getDay()==0 || newDate.getDay()==6){ weekends++; } } } return weekends; } /** * 時間戳轉成時間 * @param time * @returns */ function timeStamp2String(time){ var datetime = new Date(); datetime.setTime(time); var year = datetime.getFullYear(); var month = datetime.getMonth() + 1 < 10 ? "0" + (datetime.getMonth() + 1) : datetime.getMonth() + 1; var date = datetime.getDate() < 10 ? "0" + datetime.getDate() : datetime.getDate(); var hour = datetime.getHours()< 10 ? "0" + datetime.getHours() : datetime.getHours(); var minute = datetime.getMinutes()< 10 ? "0" + datetime.getMinutes() : datetime.getMinutes(); var second = datetime.getSeconds()< 10 ? "0" + datetime.getSeconds() : datetime.getSeconds(); return year + "-" + month + "-" + date+" "+hour+":"+minute+":"+second; } /** * 判斷是否為空 * @param val * @returns */ function isNull(val) { if (val == undefined || val == null || val == "" || val == '' || val == "undefined" || val == "null" || val == "NULL") { return true; } return false; } /** * 判斷閏年 * @param date Date日期對象 * @return boolean true 或false */ this.isLeapYear = function(date){ return (0==date.getYear()%4&&((date.getYear()%100!=0)||(date.getYear()%400==0))); } /** * 日期對象轉換為指定格式的字符串 * @param f 日期格式,格式定義如下 yyyy-MM-dd HH:mm:ss * @param date Date日期對象, 如果缺省,則為當前時間 * * YYYY/yyyy/YY/yy 表示年份 * MM/M 月份 * W/w 星期 * dd/DD/d/D 日期 * hh/HH/h/H 時間 * mm/m 分鍾 * ss/SS/s/S 秒 * @return string 指定格式的時間字符串 */ this.dateToStr = function(formatStr, date){ formatStr = arguments[0] || "yyyy-MM-dd HH:mm:ss"; date = arguments[1] || new Date(); var str = formatStr; var Week = ['日','一','二','三','四','五','六']; str=str.replace(/yyyy|YYYY/,date.getFullYear()); str=str.replace(/yy|YY/,(date.getYear() % 100)>9?(date.getYear() % 100).toString():'0' + (date.getYear() % 100)); str=str.replace(/MM/,date.getMonth()>9?(date.getMonth() + 1):'0' + (date.getMonth() + 1)); str=str.replace(/M/g,date.getMonth()); str=str.replace(/w|W/g,Week[date.getDay()]); str=str.replace(/dd|DD/,date.getDate()>9?date.getDate().toString():'0' + date.getDate()); str=str.replace(/d|D/g,date.getDate()); str=str.replace(/hh|HH/,date.getHours()>9?date.getHours().toString():'0' + date.getHours()); str=str.replace(/h|H/g,date.getHours()); str=str.replace(/mm/,date.getMinutes()>9?date.getMinutes().toString():'0' + date.getMinutes()); str=str.replace(/m/g,date.getMinutes()); str=str.replace(/ss|SS/,date.getSeconds()>9?date.getSeconds().toString():'0' + date.getSeconds()); str=str.replace(/s|S/g,date.getSeconds()); return str; } /** * 日期計算 * @param strInterval string 可選值 y 年 m月 d日 w星期 ww周 h時 n分 s秒 * @param num int * @param date Date 日期對象 * @return Date 返回日期對象 */ this.dateAdd = function(strInterval, num, date){ date = arguments[2] || new Date(); switch (strInterval) { case 's' :return new Date(date.getTime() + (1000 * num)); case 'n' :return new Date(date.getTime() + (60000 * num)); case 'h' :return new Date(date.getTime() + (3600000 * num)); case 'd' :return new Date(date.getTime() + (86400000 * num)); case 'w' :return new Date(date.getTime() + ((86400000 * 7) * num)); case 'm' :return new Date(date.getFullYear(), (date.getMonth()) + num, date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds()); case 'y' :return new Date((date.getFullYear() + num), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds()); } } /** * 比較日期差 dtEnd 格式為日期型或者有效日期格式字符串 * @param strInterval string 可選值 y 年 m月 d日 w星期 ww周 h時 n分 s秒 * @param dtStart Date 可選值 y 年 m月 d日 w星期 ww周 h時 n分 s秒 * @param dtEnd Date 可選值 y 年 m月 d日 w星期 ww周 h時 n分 s秒 */ this.dateDiff = function(strInterval, dtStart, dtEnd) { //如 'd',new Date("2016-8-22"),new Date("2016-8-25") switch (strInterval) { case 's' :return parseInt((dtEnd - dtStart) / 1000); case 'n' :return parseInt((dtEnd - dtStart) / 60000); case 'h' :return parseInt((dtEnd - dtStart) / 3600000); case 'd' :return parseInt((dtEnd - dtStart) / 86400000); case 'w' :return parseInt((dtEnd - dtStart) / (86400000 * 7)); case 'm' :return (dtEnd.getMonth()+1)+((dtEnd.getFullYear()-dtStart.getFullYear())*12) - (dtStart.getMonth()+1); case 'y' :return dtEnd.getFullYear() - dtStart.getFullYear(); } } /** * 字符串轉換為日期對象 * @param date Date 格式為yyyy-MM-dd HH:mm:ss,必須按年月日時分秒的順序,中間分隔符不限制 */ this.strToDate = function(dateStr){ var data = dateStr; var reCat = /(\d{1,4})/gm; var t = data.match(reCat); t[1] = t[1] - 1; eval('var d = new Date('+t.join(',')+');'); return d; } /** * 把指定格式的字符串轉換為日期對象yyyy-MM-dd HH:mm:ss * */ this.strFormatToDate = function(formatStr, dateStr){ var year = 0; var start = -1; var len = dateStr.length; if((start = formatStr.indexOf('yyyy')) > -1 && start < len){ year = dateStr.substr(start, 4); } var month = 0; if((start = formatStr.indexOf('MM')) > -1 && start < len){ month = parseInt(dateStr.substr(start, 2)) - 1; } var day = 0; if((start = formatStr.indexOf('dd')) > -1 && start < len){ day = parseInt(dateStr.substr(start, 2)); } var hour = 0; if( ((start = formatStr.indexOf('HH')) > -1 || (start = formatStr.indexOf('hh')) > 1) && start < len){ hour = parseInt(dateStr.substr(start, 2)); } var minute = 0; if((start = formatStr.indexOf('mm')) > -1 && start < len){ minute = dateStr.substr(start, 2); } var second = 0; if((start = formatStr.indexOf('ss')) > -1 && start < len){ second = dateStr.substr(start, 2); } return new Date(year, month, day, hour, minute, second); } /** * 日期對象轉換為毫秒數 */ this.dateToLong = function(date){ return date.getTime(); } /** * 毫秒轉換為日期對象 * @param dateVal number 日期的毫秒數 */ this.longToDate = function(dateVal){ return new Date(dateVal); } /** * 判斷字符串是否為日期格式 * @param str string 字符串 * @param formatStr string 日期格式, 如下 yyyy-MM-dd */ this.isDate = function(str, formatStr){ if (formatStr == null){ formatStr = "yyyyMMdd"; } var yIndex = formatStr.indexOf("yyyy"); if(yIndex==-1){ return false; } var year = str.substring(yIndex,yIndex+4); var mIndex = formatStr.indexOf("MM"); if(mIndex==-1){ return false; } var month = str.substring(mIndex,mIndex+2); var dIndex = formatStr.indexOf("dd"); if(dIndex==-1){ return false; } var day = str.substring(dIndex,dIndex+2); if(!isNumber(year)||year>"2100" || year< "1900"){ return false; } if(!isNumber(month)||month>"12" || month< "01"){ return false; } if(day>getMaxDay(year,month) || day< "01"){ return false; } return true; } this.getMaxDay = function(year,month) { if(month==4||month==6||month==9||month==11) return "30"; if(month==2) if(year%4==0&&year%100!=0 || year%400==0) return "29"; else return "28"; return "31"; } /** * 變量是否為數字 */ this.isNumber = function(str) { var regExp = /^\d+$/g; return regExp.test(str); } /** * 把日期分割成數組 [年、月、日、時、分、秒] */ this.toArray = function(myDate) { myDate = arguments[0] || new Date(); var myArray = Array(); myArray[0] = myDate.getFullYear(); myArray[1] = myDate.getMonth(); myArray[2] = myDate.getDate(); myArray[3] = myDate.getHours(); myArray[4] = myDate.getMinutes(); myArray[5] = myDate.getSeconds(); return myArray; } /** * 取得日期數據信息 * 參數 interval 表示數據類型 * y 年 M月 d日 w星期 ww周 h時 n分 s秒 */ this.datePart = function(interval, myDate) { myDate = arguments[1] || new Date(); var partStr=''; var Week = ['日','一','二','三','四','五','六']; switch (interval) { case 'y' :partStr = myDate.getFullYear();break; case 'M' :partStr = myDate.getMonth()+1;break; case 'd' :partStr = myDate.getDate();break; case 'w' :partStr = Week[myDate.getDay()];break; case 'ww' :partStr = myDate.WeekNumOfYear();break; case 'h' :partStr = myDate.getHours();break; case 'm' :partStr = myDate.getMinutes();break; case 's' :partStr = myDate.getSeconds();break; } return partStr; } /** * 取得當前日期所在月的最大天數 */ this.maxDayOfDate = function(date) { date = arguments[0] || new Date(); date.setDate(1); date.setMonth(date.getMonth() + 1); var time = date.getTime() - 24 * 60 * 60 * 1000; var newDate = new Date(time); return newDate.getDate(); }