JavaScript日期工具类DateUtils定义与用法示例
网络编程 2021-07-04 16:46www.168986.cn编程入门
这篇文章主要介绍了JavaScript日期工具类DateUtils定义与用法,涉及javascript针对日期时间的获取、转换、比较、运算等相关操作技巧,需要的朋友可以参考下
本文实例讲述了JavaScript日期工具类DateUtils定义与用法。分享给大家供大家参考,具体如下
DateUtils = { patterns: { PATTERN_ERA: 'G', //Era 标志符 Era strings. For example: "AD" and "BC" PATTERN_YEAR: 'y', //年 PATTERN_MONTH: 'M', //月份 PATTERN_DAY_OF_MONTH: 'd', //月份的天数 PATTERN_HOUR_OF_DAY1: 'k', //一天中的小时数(1-24) PATTERN_HOUR_OF_DAY0: 'H', //24小时制,一天中的小时数(0-23) PATTERN_MINUTE: 'm', //小时中的分钟数 PATTERN_SECOND: 's', //秒 PATTERN_MILLISECOND: 'S', //毫秒 PATTERN_DAY_OF_WEEK: 'E', //一周中对应的星期,如星期一,周一 PATTERN_DAY_OF_YEAR: 'D', //一年中的第几天 PATTERN_DAY_OF_WEEK_IN_MONTH: 'F', //一月中的第几个星期(会把这个月总共过的天数除以7,不够准确,推荐用W) PATTERN_WEEK_OF_YEAR: 'w', //一年中的第几个星期 PATTERN_WEEK_OF_MONTH: 'W', //一月中的第几星期(会根据实际情况来算) PATTERN_AM_PM: 'a', //上下午标识 PATTERN_HOUR1: 'h', //12小时制 ,am/pm 中的小时数(1-12) PATTERN_HOUR0: 'K', //和h类型 PATTERN_ZONE_NAME: 'z', //时区名 PATTERN_ZONE_VALUE: 'Z', //时区值 PATTERN_WEEK_YEAR: 'Y', //和y类型 PATTERN_ISO_DAY_OF_WEEK: 'u', PATTERN_ISO_ZONE: 'X' }, week: { 'ch': { "0": "\u65e5", "1": "\u4e00", "2": "\u4e8c", "3": "\u4e09", "4": "\u56db", "5": "\u4e94", "6": "\u516d" }, 'en': { "0": "Sunday", "1": "Monday", "2": "Tuesday", "3": "Wednesday", "4": "Thursday", "5": "Friday", "6": "Saturday" } }, //获取当前时间 getCurrentTime: function() { var today = new Date(); var year = today.getFullYear(); var month = today.getMonth() + 1; var day = today.getDate(); var hours = today.getHours(); var minutes = today.getMinutes(); var seconds = today.getSeconds(); var timeString = year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds; return timeString; }, / 比较时间大小 time1>time2 return 1 time1<time2 return -1 time1==time2 return 0 / pareTime: function(time1, time2) { if(Date.parse(time1.replace(/-/g, "/")) > Date.parse(time2.replace(/-/g, "/"))) { return 1; } else if(Date.parse(time1.replace(/-/g, "/")) < Date.parse(time2.replace(/-/g, "/"))) { return -1; } else if(Date.parse(time1.replace(/-/g, "/")) == Date.parse(time2.replace(/-/g, "/"))) { return 0; } }, //是否闰年 isLeapYear: function(year) { return((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0); }, //获取某个月的天数,从0开始 getDaysOfMonth: function(year, month) { return [31, (this.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month]; }, getDaysOfMonth2: function(year, month) { // 将天置为0,会获取其上个月的一天 month = parseInt(month) + 1; var date = new Date(year, month, 0); return date.getDate(); }, /距离现在几天的日期负数表示今天之前的日期,0表示今天,整数表示未来的日期 如-1表示昨天的日期,0表示今天,2表示后天 / fromToday: function(days) { var today = new Date(); today.setDate(today.getDate() + days); var date = today.getFullYear() + "-" + (today.getMonth() + 1) + "-" + today.getDate(); return date; }, / 日期时间格式化 @param {Object} dateTime 需要格式化的日期时间 @param {String} pattern 格式化的模式,如yyyy-MM-dd hh(HH):mm:ss.S a k K E D F w W z Z / formt: function(dateTime, pattern) { var date = new Date(dateTime); if(Bee.StringUtils.isBlank(pattern)) { return date.toLocaleString(); } return pattern.replace(/([a-z])\1/ig, function(matchStr, group1) { var replacement = ""; switch(group1) { case Bee.DateUtils.patterns.PATTERN_ERA: //G break; case Bee.DateUtils.patterns.PATTERN_WEEK_YEAR: //Y case Bee.DateUtils.patterns.PATTERN_YEAR: //y replacement = date.getFullYear(); break; case Bee.DateUtils.patterns.PATTERN_MONTH: //M var month = date.getMonth() + 1; replacement = (month < 10 && matchStr.length >= 2) ? "0" + month : month; break; case Bee.DateUtils.patterns.PATTERN_DAY_OF_MONTH: //d var days = date.getDate(); replacement = (days < 10 && matchStr.length >= 2) ? "0" + days : days; break; case Bee.DateUtils.patterns.PATTERN_HOUR_OF_DAY1: //k(1~24) var hours24 = date.getHours(); replacement = hours24; break; case Bee.DateUtils.patterns.PATTERN_HOUR_OF_DAY0: //H(0~23) var hours24 = date.getHours(); replacement = (hours24 < 10 && matchStr.length >= 2) ? "0" + hours24 : hours24; break; case Bee.DateUtils.patterns.PATTERN_MINUTE: //m var minutes = date.getMinutes(); replacement = (minutes < 10 && matchStr.length >= 2) ? "0" + minutes : minutes; break; case Bee.DateUtils.patterns.PATTERN_SECOND: //s var seconds = date.getSeconds(); replacement = (seconds < 10 && matchStr.length >= 2) ? "0" + seconds : seconds; break; case Bee.DateUtils.patterns.PATTERN_MILLISECOND: //S var milliSeconds = date.getMilliseconds(); replacement = milliSeconds; break; case Bee.DateUtils.patterns.PATTERN_DAY_OF_WEEK: //E var day = date.getDay(); replacement = Bee.DateUtils.week['ch'][day]; break; case Bee.DateUtils.patterns.PATTERN_DAY_OF_YEAR: //D replacement = Bee.DateUtils.dayOfTheYear(date); break; case Bee.DateUtils.patterns.PATTERN_DAY_OF_WEEK_IN_MONTH: //F var days = date.getDate(); replacement = Math.floor(days / 7); break; case Bee.DateUtils.patterns.PATTERN_WEEK_OF_YEAR: //w var days = Bee.DateUtils.dayOfTheYear(date); replacement = Math.ceil(days / 7); break; case Bee.DateUtils.patterns.PATTERN_WEEK_OF_MONTH: //W var days = date.getDate(); replacement = Math.ceil(days / 7); break; case Bee.DateUtils.patterns.PATTERN_AM_PM: //a var hours24 = date.getHours(); replacement = hours24 < 12 ? "\u4e0a\u5348" : "\u4e0b\u5348"; break; case Bee.DateUtils.patterns.PATTERN_HOUR1: //h(1~12) var hours12 = date.getHours() % 12 || 12; //0转为12 replacement = (hours12 < 10 && matchStr.length >= 2) ? "0" + hours12 : hours12; break; case Bee.DateUtils.patterns.PATTERN_HOUR0: //K(0~11) var hours12 = date.getHours() % 12; replacement = hours12; break; case Bee.DateUtils.patterns.PATTERN_ZONE_NAME: //z replacement = Bee.DateUtils.getZoneNameValue(date)['name']; break; case Bee.DateUtils.patterns.PATTERN_ZONE_VALUE: //Z replacement = Bee.DateUtils.getZoneNameValue(date)['value']; break; case Bee.DateUtils.patterns.PATTERN_ISO_DAY_OF_WEEK: //u break; case Bee.DateUtils.patterns.PATTERN_ISO_ZONE: //X break; default: break; } return replacement; }); }, / 计算一个日期是当年的第几天 @param {Object} date / dayOfTheYear: function(date) { var obj = new Date(date); var year = obj.getFullYear(); var month = obj.getMonth(); //从0开始 var days = obj.getDate(); var daysArr = [31, (this.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; for(var i = 0; i < month; i++) { days += daysArr[i]; } return days; }, //获得时区名和值 getZoneNameValue: function(dateObj) { var date = new Date(dateObj); date = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate())); var arr = date.toString().match(/([A-Z]+)([-+]\d+:?\d+)/); var obj = { 'name': arr[1], 'value': arr[2] }; return obj; } }; //用法示例 console.log(DateUtils.getCurrentTime())//获取当前时间 console.log(DateUtils.pareTime('2018-8-1','2018-9-3'))//比较时间 console.log(DateUtils.isLeapYear('2018'))//是否闰年 console.log(DateUtils.getDaysOfMonth('2018','9'))//获取指定月份的天数(从0计数) console.log(DateUtils.dayOfTheYear('2018-9-3'))//计算指定日期是当年第几天
使用在线HTML/CSS/JavaScript代码运行工具测试运行结果如下
PS这里再为大家推荐几款比较实用的天数计算在线工具供大家使用
在线日期/天数计算器
在线日期计算器/相差天数计算器
在线日期天数差计算器
在线天数计算器
更多关于JavaScript相关内容感兴趣的读者可查看本站专题《》、《》、《》、《》及《》
希望本文所述对大家JavaScript程序设计有所帮助。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程