JavaScript日期处理公共函数

    xiaoxiao2021-03-31  43

    JavaScript日期处理公共函数。

    1、创建DateHandler.js文件

    /**************************************************************************** -- 日期处理公共函数 ****************************************************************************/ var DateHandler = { /**************************************************************************** -- 将字符类型转日期类型 -- 参数:strDate:日期字符串 ****************************************************************************/ ConvertStrToDate: function (strDate) { var dateRet = null; if (strDate != null && strDate != "") { //日期格式为:yyyyMMdd var regA = /^(\d{4})(\d{2})(\d{2})$/; if (regA.test(strDate)) { var strArray = regA.exec(strDate); dateRet = new Date(strArray[1], Number(strArray[2]) - 1, strArray[3], 00, 00, 00); return dateRet; } //日期格式为:yyyyMMddHHmmss var regB = /^(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$/; if (regB.test(strDate)) { var strArray = regB.exec(strDate); dateRet = new Date(strArray[1], Number(strArray[2]) - 1, strArray[3], strArray[4], strArray[5], strArray[6]); return dateRet; } //日期格式为:yyyy-MM-dd var regC = /^(\d{4})-(\d{1,2})-(\d{1,2})$/; if (regC.test(strDate)) { var strArray = regC.exec(strDate); dateRet = new Date(strArray[1], Number(strArray[2]) - 1, strArray[3], 00, 00, 00); return dateRet; } //日期格式为:yyyy-MM-dd HH:mm:ss var regD = /^(\d{4})-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; if (regD.test(strDate)) { var strArray = regD.exec(strDate); dateRet = new Date(strArray[1], Number(strArray[2]) - 1, strArray[3], strArray[4], strArray[5], strArray[6]); return dateRet; } //日期格式为:yyyy年MM月dd日 var regE = /^(\d{4})年(\d{1,2})月(\d{1,2})日$/; if (regE.test(strDate)) { var strArray = regE.exec(strDate); dateRet = new Date(strArray[1], Number(strArray[2]) - 1, strArray[3], 00, 00, 00); return dateRet; } //日期格式为:yyyy年MM月dd日 HH:mm:ss var regF = /^(\d{4})年(\d{1,2})月(\d{1,2})日 (\d{1,2}):(\d{1,2}):(\d{1,2})$/; if (regF.test(strDate)) { var strArray = regF.exec(strDate); dateRet = new Date(strArray[1], Number(strArray[2]) - 1, strArray[3], strArray[4], strArray[5], strArray[6]); return dateRet; } } return dateRet; }, /**************************************************************************** -- 将日期类型转字符类型 -- 参数:dateTime:日期类型 -- formatType:日期格式(1:yyyyMMdd;2:yyyyMMddHHmmss;3:yyyy-MM-dd; 4:yyyy-MM-dd HH:mm:ss;5:yyyy年MM月dd日;6:yyyy年MM月dd日 HH:mm:ss;7:M月d日) ****************************************************************************/ ConvertDateToStr: function (dateTime, formatType) { var dateRet = null; if (dateTime == null) { return null; } var Year = dateTime.getFullYear().toString(); var tMonth = String(dateTime.getMonth() + 1); var Month = DateHandler.DouPosit(tMonth); var tDates = dateTime.getDate().toString(); var Dates = DateHandler.DouPosit(dateTime.getDate().toString()); var Hours = DateHandler.DouPosit(dateTime.getHours().toString()); var Minutes = DateHandler.DouPosit(dateTime.getMinutes().toString()); var Seconds = DateHandler.DouPosit(dateTime.getSeconds().toString()); switch (formatType) { case 1: dateRet = Year + Month + Dates; break; case 2: dateRet = Year + Month + Dates + Hours + Minutes + Seconds; break; case 3: dateRet = Year + "-" + Month + "-" + Dates; break; case 4: dateRet = Year + "-" + Month + "-" + Dates + " " + Hours + ":" + Minutes + ":" + Seconds; break; case 5: dateRet = Year + "年" + Month + "月" + Dates + "日"; break; case 6: dateRet = Year + "年" + Month + "月" + Dates + "日 " + Hours + ":" + Minutes + ":" + Seconds; break; case 7: dateRet = tMonth + "月" + tDates + "日"; break; default: break; } return dateRet; }, /**************************************************************************** -- 个位数补两位数 ****************************************************************************/ DouPosit: function (numStr) { if (numStr != null && numStr.length == 1) { numStr = "0" + numStr; } return numStr; }, /**************************************************************************** -- 获取日期是周几 -- 参数:strDate:日期字符串 ****************************************************************************/ ConvertDay: function (dateStr) { var dayRet = null; var show_day = new Array('周日', '周一', '周二', '周三', '周四', '周五', '周六'); var thisDate = DateHandler.ConvertStrToDate(dateStr); if (thisDate != null) { var day = thisDate.getDay(); dayRet = show_day[day]; } return dayRet; }, /**************************************************************************** -- 计算时差(天数) -- 参数:beginDateStr:开始日期字符串 -- endDateStr:结束日期字符串 ****************************************************************************/ EquationDate: function (beginDateStr, endDateStr) { var numRet = null; var beginDate = DateHandler.ConvertStrToDate(beginDateStr); var endDate = DateHandler.ConvertStrToDate(endDateStr); if (beginDate != null && endDate != null) { //将时分秒毫秒设置为0 beginDate.setHours(0); beginDate.setMinutes(0); beginDate.setSeconds(0); beginDate.setMilliseconds(0); endDate.setHours(0); endDate.setMinutes(0); endDate.setSeconds(0); endDate.setMilliseconds(0); var milliseconds = endDate.getTime() - beginDate.getTime(); //时间差的毫秒数 numRet = Math.floor(milliseconds / (24 * 3600 * 1000)); //计算出相差天数 } return numRet; }, /**************************************************************************** -- 将字符类型转字符类型 -- 参数:strDate:日期字符串(必须包含年月日) -- formatType:日期格式(1:yyyyMMdd;2:yyyyMMddHHmmss;3:yyyy-MM-dd; 4:yyyy-MM-dd HH:mm:ss;5:yyyy年MM月dd日;6:yyyy年MM月dd日 HH:mm:ss;7:M月d日) ****************************************************************************/ ConvertStrToStr: function (strDate, formatType) { var strRet = null; var thisDate = DateHandler.ConvertStrToDate(strDate); if (thisDate != null) { strRet = DateHandler.ConvertDateToStr(thisDate, formatType); } return strRet; } };

    2、测试调用

    <button onclick="TestConvertStrToDate()">将字符类型转日期类型</button> <button onclick="TestConvertDateToStr()">将日期类型转字符类型</button> <button onclick="TestConvertDay()">获取日期是周几</button> <button onclick="TestEquationDate()">计算时差(天数)</button> <button onclick="TestConvertStrToStr()">将字符类型转字符类型</button>

     

    //将字符类型转日期类型 function TestConvertStrToDate() { var tempDate = ["20170209", "20170412081828", "2017-4-1", "2017-04-12", "2017-4-1 7:8:9", "2017-04-12 08:08:28", "2017年4月1日", "2017年04月12日", "2017年4月1日 7:8:9", "2017年04月12日 08:18:28"]; for (var i = 0; i < tempDate.length; i++) { var dateTime = DateHandler.ConvertStrToDate(tempDate[i]); if (dateTime != null) { var Year = dateTime.getFullYear().toString(); var Month = DateHandler.DouPosit(String(dateTime.getMonth() + 1)); var Dates = DateHandler.DouPosit(dateTime.getDate().toString()); var Hours = DateHandler.DouPosit(dateTime.getHours().toString()); var Minutes = DateHandler.DouPosit(dateTime.getMinutes().toString()); var Seconds = DateHandler.DouPosit(dateTime.getSeconds().toString()); alert("转换前:" + tempDate[i] + " 转换后:" + Year + "年" + Month + "月" + Dates + "日 " + Hours + "时" + Minutes + "分" + Seconds + "秒"); } else { alert("格式为:" + tempDate[i] + "转换出错!"); } } } //将日期类型转字符类型 function TestConvertDateToStr() { alert(DateHandler.ConvertDateToStr(new Date(), 1)); alert(DateHandler.ConvertDateToStr(new Date(), 2)); alert(DateHandler.ConvertDateToStr(new Date(), 3)); alert(DateHandler.ConvertDateToStr(new Date(), 4)); alert(DateHandler.ConvertDateToStr(new Date(), 5)); alert(DateHandler.ConvertDateToStr(new Date(), 6)); alert(DateHandler.ConvertDateToStr(new Date(), 7)); } //获取日期是周几 function TestConvertDay() { var tempDate = ["20170403", "20170404", "20170405081828", "2017-04-06", "2017-04-07", "2017-04-08", "2017-04-09 08:18:28"]; for (var i = 0; i < tempDate.length; i++) { var day = DateHandler.ConvertDay(tempDate[i]); alert(day); } } //计算时差(天数) function TestEquationDate() { var day = DateHandler.EquationDate("2017-04-01", "2017-05-31"); alert("时差:" + day + "天"); } //将字符类型转字符类型 function TestConvertStrToStr() { var dateStr = "20170412081828"; alert(DateHandler.ConvertStrToStr(dateStr, 1)); alert(DateHandler.ConvertStrToStr(dateStr, 2)); alert(DateHandler.ConvertStrToStr(dateStr, 3)); alert(DateHandler.ConvertStrToStr(dateStr, 4)); alert(DateHandler.ConvertStrToStr(dateStr, 5)); alert(DateHandler.ConvertStrToStr(dateStr, 6)); alert(DateHandler.ConvertStrToStr(dateStr, 7)); }

     

    转载请注明原文地址: https://ju.6miu.com/read-665463.html

    最新回复(0)