JS中有哪些常见的日期操作,怎样实现
Admin 2022-06-23 群英技术资讯 277 次浏览
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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了Vue3 使用axios拦截器打印前端日志,这是一种比较值得推荐的方式,也就是写一次,就不用总写console.log了。下面来看看文章的详细内容,需要的朋友可以参考一下
javascript语句必须嵌套在“script”标签中,script标签用于定义客户端脚本,该标签既可包含脚本语句,也可以通过“src”属性指向外部脚本文件,语法为“<script>javascript语句代码</script> ”。
现在很多商家、组织、单位等等都有自己的微信小程序,我们能方便快捷的在小程序商实现自己想要的服务,其中有一些服务需要我们个人签名,那么微信小程序上的电子签名功能是怎样实现的呢?接下来小编就带大家来了解一下。
在制作网页页面时,轮播图效果是比较常见的,想要实现轮播图效果的方法很多,本文主要介绍的使用jQuery实现轮播图,以下是实现代码,感兴趣的朋友可以了解看看。
本文实例为大家分享了vue引入Excel表格插件的具体代码,供大家参考,具体内容如下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008