JS中有哪些常见的日期操作,怎样实现
Admin 2022-06-23 群英技术资讯 458 次浏览
let Utils = { /** * 是否为闫年 * @return {Boolse} true|false */ isLeapYear: function(y) { return (y % 4 == 0 && y % 100 != 0) || y % 400 == 0; }, /** * 返回星期数 * @return {Number} */ getWhatDay: function(year, month, day) { let date = new Date(year + '/' + month + '/' + day); let index = date.getDay(); let dayNames = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']; return dayNames[index]; }, /** * 返回星期数 * @return {Number} */ getMonthPreDay: function(year, month) { let date = new Date(year + '/' + month + '/01'); let day = date.getDay(); if (day == 0) { day = 7; } return day; }, /** * 返回月份天数 * @return {Number} */ getMonthDays: function(year, month) { if (/^0/.test(month)) { month = month.split('')[1]; } return [0, 31, this.isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month]; }, /** * 补齐数字位数 * @return {string} */ getNumTwoBit: function(n) { n = Number(n); return (n > 9 ? '' : '0') + n; }, /** * 日期对象转成字符串 * @return {string} */ date2Str: function(date, split) { if (typeof date == 'string') return date; split = split || '-'; let y = date.getFullYear(); let m = this.getNumTwoBit(date.getMonth() + 1); let d = this.getNumTwoBit(date.getDate()); return [y, m, d].join(split); }, /** * 返回日期格式字符串 * @param {Number} 0返回今天的日期、1返回明天的日期,2返回后天得日期,依次类推 * @return {string} '2014-12-31' */ getDay: function(i) { i = i || 0; let date = new Date(); let diff = i * (1000 * 60 * 60 * 24); date = new Date(date.getTime() + diff); return this.date2Str(date); }, /** * 时间戳转换为日期格式 * @return {String} */ timestampToDate: function(timestamp) { let date = new Date(timestamp); return date.getFullYear() + '-' + getNumTwoBit(date.getMonth() + 1) + '-' + getNumTwoBit(date.getDate()); }, /** * 时间比较 * @return {Boolean} */ compareDate: function(date1, date2) { let startTime = new Date(date1.replace('-', '/').replace('-', '/')); let endTime = new Date(date2.replace('-', '/').replace('-', '/')); if (startTime >= endTime) { return false; } return true; }, /** * 时间比较 * @return {Boolean} */ compareDateArr: function(date1, date2) { let startTime = new Date(); startTime.setFullYear(parseInt(date1[0]), parseInt(date1[1]) - 1, parseInt(date1[2])); startTime.setHours(parseInt(date1[3]), parseInt(date1[4])); let endTime = new Date(); endTime.setFullYear(parseInt(date2[0]), parseInt(date2[1]) - 1, parseInt(date2[2])); endTime.setHours(parseInt(date2[3]), parseInt(date2[4])); if (startTime >= endTime) { return false; } return true; }, /** * 时间是否相等 * @return {Boolean} */ isEqual: function(date1, date2) { let startTime = new Date(date1).getTime(); let endTime = new Date(date2).getTime(); if (startTime == endTime) { return true; } return false; }, getDateArr(str) { return [this.getYear(str), this.getMonth(str), this.getDate(str), this.getHour(str), this.getMinute(str)]; }, isDateString(str) { return /\d{4}(\-|\/|.)\d{1,2}\1\d{1,2}/.test(str) || /^([01][0-9]|2[0-3])(:[0-5][0-9]){1,2}$/.test(str); }, getYear(value) { return this.isDateString(value) ? value.split(' ')[0].split(/-|\/|\./)[0] : value.getFullYear(); }, getMonth(value) { return this.isDateString(value) ? value.split(' ')[0].split(/-|\/|\./)[1] : value.getMonth() + 1; }, getDate(value) { return this.isDateString(value) ? value.split(' ')[0].split(/-|\/|\./)[2] : value.getDate(); }, getHour(value) { if (this.isDateString(value)) { const str = value.split(' ')[1] || '00:00:00'; return str.split(':')[0]; } return value.getHours(); }, getMinute(value) { if (this.isDateString(value)) { const str = value.split(' ')[1] || '00:00:00'; return str.split(':')[1]; } return value.getMinutes(); } }; export default Utils;
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
事件是在编程时系统内发生的动作或者发生的事情,而开发者可以某种方式对事件做出回应,而这里有几个先决条件,这篇文章主要介绍了React合成事件原理解析,需要的朋友可以参考下
方法:1、将需要求平均值的数存入数组中;2、使用“for(i=0;i<arr.length;i++){sum+=arr[i]}”语句遍历数组,计算多个数的总和并赋值给变量“sum”;3、使用“sum/arr.length”语句计算出平均值。
reverse可以颠倒数组中元素的顺序。sort按升序排列数组项即最小值在最前面,最大值在最后面。为实现排序,sort会调用每个数组项的toString,然后比较得到的字符串,以确定如何排
本文实例为大家分享了vue实现列表无缝循环滚动的具体代码,供大家参考,具体内容如下
这篇文章主要为大家详细介绍了原生JavaScript实现简单五子棋游戏,文中示例代码注释的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008