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