123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300 |
- // 日期补0
- const formatNumber = n => {
- n = n.toString()
- return n[1] ? n : '0' + n
- }
- // 年月日时分秒
- const formatTime = (date, word = false, datestring = '/', timestring = ":") => {
- if(date.constructor==String){
- var date = new Date(date.replace(/-/g, '/'));
- }
- const year = date.getFullYear()
- const month = date.getMonth() + 1
- const day = date.getDate()
- const hour = date.getHours()
- const minute = date.getMinutes()
- const second = date.getSeconds()
- if (word == false) {
- return [year, month, day].map(formatNumber).join(datestring) + ' ' + [hour, minute, second].map(formatNumber).join(
- timestring)
- }
- return [year].map(formatNumber) + '年' + [month].map(formatNumber) + '月' + [day].map(formatNumber) + '日' + ' ' + [
- hour
- ].map(formatNumber) + ':' + [minute].map(formatNumber) + ':' + [second].map(formatNumber)
- }
- // 年月日时分
- const formatSpotDayHourMinute = (date, word = false, datestring = '/', timestring = ":") => {
- if(date.constructor==String){
- var date = new Date(date.replace(/-/g, '/'));
- }
- const year = date.getFullYear()
- const month = date.getMonth() + 1
- const day = date.getDate()
- const hour = date.getHours()
- const minute = date.getMinutes()
- if (word == false) {
- return [year, month, day].map(formatNumber).join(datestring) + ' ' + [hour, minute].map(formatNumber).join(
- timestring)
- }
- return [year].map(formatNumber) + '年' + [month].map(formatNumber) + '月' + [day].map(formatNumber) + '日' + ' ' + [
- hour
- ].map(formatNumber) + ':' + [minute].map(formatNumber)
- }
- // 年月日
- const formatTimeDay = (date, word = false, datestring = '/') => {
- if(date.constructor==String){
- var date = new Date(date.replace(/-/g, '/'));
- }
- const year = date.getFullYear()
- const month = date.getMonth() + 1
- const day = date.getDate()
- if (word == false) {
- return [year, month, day].map(formatNumber).join(datestring)
- }
- return [year].map(formatNumber) + '年' + [month].map(formatNumber) + '月' + [day].map(formatNumber) + '日'
- }
- // 年月
- const formatWordsYM = (date, word = false, datestring = '/') => {
- if(date.constructor==String){
- var date = new Date(date.replace(/-/g, '/'));
- }
- const year = date.getFullYear()
- const month = date.getMonth() + 1
- if (word == false) {
- return [year, month].map(formatNumber).join(datestring)
- }
- return [year].map(formatNumber) + '年' + [month].map(formatNumber) + '月'
- }
- // 月日
- const formatWordsYD = (date, word = false, datestring = '/') => {
- if(date.constructor==String){
- var date = new Date(date.replace(/-/g, '/'));
- }
- const month = date.getMonth() + 1
- const day = date.getDate()
- if (word == false) {
- return [month, day].map(formatNumber).join(datestring)
- }
- return [month].map(formatNumber) + '月' + [day].map(formatNumber) + '日'
- }
- // 时分
- const formatTimeHourMonth = (date, word = false, timestring = ":") => {
- if(date.constructor==String){
- var date = new Date(date.replace(/-/g, '/'));
- }
- const hour = date.getHours()
- const minute = date.getMinutes()
- if (word == false) {
- return [hour, minute].map(formatNumber).join(timestring)
- }
- return [hour].map(formatNumber) + '时' + [minute].map(formatNumber) + '分'
- }
- // 更新数组年月份日期
- function getfullDateStr(dayCount = 0,word=false,datestring="-") {
- var dd = new Date();
- dd.setDate(dd.getDate() + dayCount); //设置日期
- const year = dd.getFullYear()
- const month = dd.getMonth() + 1
- const day = dd.getDate()
- if(!word){
- return [year, month, day].map(formatNumber).join(datestring)
- }
- return [year].map(formatNumber) + '年' + [month].map(formatNumber) + '月' + [day].map(formatNumber) + '日'
- }
- //计算两个日期差
- function daysBetween(sDate1, sDate2) {
- //Date.parse() 解析一个日期时间字符串,并返回1970/1/1 午夜距离该日期时间的毫秒数
- var time1 = (new Date(sDate1)).getTime();
- var time2 = (new Date(sDate2)).getTime();
- var nDays = parseInt((time2 - time1) / 1000 / 3600 / 24);
- return nDays;
- };
- // 更新数组月份日期
- function getDateStr(dayCount = 0) {
- var dd = new Date();
- dd.setDate(dd.getDate() + dayCount); //设置日期
- var m = dd.getMonth() + 1; //获取当前月份的日期
- var d = dd.getDate();
- return `${m}月${d<10?'0'+d:d}日`
- }
- // 转化时间几分钟前 小时前 昨天 多少天前 '-'年月日
- const formatTimeHours = (timespan,word=false) => {
- if(timespan.constructor==String){
- var dateTimeStamp = new Date(timespan.replace(/-/g, '/'));
- }else{
- var dateTimeStamp = timespan
- }
- var minute = 1000 * 60;
- var hour = minute * 60;
- var day = hour * 24;
- var result = '';
- var now = new Date().getTime();
- var diffValue = now - dateTimeStamp;
- if (diffValue < 0) {
- console.log("时间不对劲,服务器创建时间与当前时间不同步");
- return result = "刚刚";
- }
- var dayC = diffValue / day;
- var hourC = diffValue / hour;
- var minC = diffValue / minute;
- if (parseInt(dayC) > 7) {
- if(word==false){
- result = "" + formatSpotDayHourMinute(dateTimeStamp,false,'-',':')
- }else{
- result = "" + formatSpotDayHourMinute(dateTimeStamp,true)
- }
- } else if (parseInt(dayC) > 1) {
- result = "" + parseInt(dayC) + "天前" + ' ' + formatTimeHourMonth(dateTimeStamp,word);
- } else if (parseInt(dayC) == 1) {
- result = "昨天" + ' ' + formatTimeHourMonth(dateTimeStamp,word);
- } else if (hourC >= 1) {
- result = "" + parseInt(hourC) + "小时前";
- } else if (minC >= 5) {
- result = "" + parseInt(minC) + "分钟前";
- } else {
- result = "刚刚";
- }
- return result;
- };
- //更新数组星期
- function getWeekDateStr(dayCount = 0) {
- //更新数组星期
- var weekStr = "周" + "日一二三四五六".charAt((new Date().getDay() + dayCount) % 7);
- return weekStr;
- }
- //手机号是否合法
- function isPhone(val) {
- const regexp = /^1(3\d|4[5-9]|5[0-35-9]|6[567]|7[0-8]|8\d|9[0-35-9])\d{8}$/;
- return regexp.test(val)
- // if (!(/^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/.test(phone)) || phone == '') {
- // return true;
- // }
- }
- //银行卡是否合法
- function isIDcard(value) {
- if (!code || !/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|X)$/i.test(value)) {
- return true
- }
- }
- /**
- * 处理富文本里的图片宽度自适应
- * 1.去掉img标签里的style、width、height属性
- * 2.img标签添加style属性:max-width:100%;height:auto
- * 3.修改所有style里的width属性为max-width:100%
- * 4.去掉<br/>标签
- * @param html
- * @returns {void|string|*}
- */
- function formatRichText(html) {
- let newContent = html.replace(/<img[^>]*>/gi, function (match, capture) {
- match = match.replace(/style="[^"]+"/gi, '').replace(/style='[^']+'/gi, '');
- match = match.replace(/width="[^"]+"/gi, '').replace(/width='[^']+'/gi, '');
- match = match.replace(/height="[^"]+"/gi, '').replace(/height='[^']+'/gi, '');
- return match;
- });
- newContent = newContent.replace(/style="[^"]+"/gi, function (match, capture) {
- match = match.replace(/width:[^;]+;/gi, 'width:100%;').replace(/width:[^;]+;/gi, 'width:100%;');
- return match;
- });
- newContent = newContent.replace(/<br[^>]*\/>/gi, '');
- newContent = newContent.replace(/\<img/gi, '<img style="width:100%;height:auto;display:block;margin-top:0;margin-bottom:0;"');
- return newContent;
- };
- //图片转base64
- function toImageBase64(url) {
- return 'data:image/jpg;base64,' + wx.getFileSystemManager().readFileSync(url, "base64")
- }
- // 生成随机数字
- function RandomNumBoth(Min, Max) {
- var Range = Max - Min;
- var Rand = Math.random();
- var num = Min + Math.round(Rand * Range); //四舍五入
- return num;
- }
- // 随机字符串
- function randomName(len) {
- len = len || 23;
- var chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';
- var maxPos = chars.length;
- var str = '';
- for (var i = 0; i < len; i++) {
- str += chars.charAt(Math.floor(Math.random() * maxPos));
- }
- return new Date().getTime() + str;
- }
- // 随机颜色值
- function buildColor() {
- var color = "#" + Math.floor(Math.random() * 0xFFFFFF).toString(16).padStart(6, "0");
- return color;
- }
- function path(val){
- return '/static/images/'+val
- }
- // 格式化手机号 3-3-4
- function formatPhone(val) {
- if(val.length==11){
- const matches = /^(\d{3})(\d{4})(\d{4})$/.exec(val)
- if (matches) {
- return matches[1] + '-' + matches[2] + '-' + matches[3]
- }
- }else{
- return val
- }
-
- }
- const testPwd = (val) => {
- const regexp = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,}$/;
- return regexp.test(val)
- }
- module.exports = {
- formatWordsYM: formatWordsYM, //年月
- formatTime: formatTime, // 年月日时分秒
- formatTimeDay: formatTimeDay, // 年月日
- formatSpotDayHourMinute: formatSpotDayHourMinute, //年月日时分
- formatWordsYD: formatWordsYD,// 月日
- formatTimeHourMonth: formatTimeHourMonth, // 时分
- formatTimeHours:formatTimeHours, // 时间处理刚刚,几天前
- daysBetween: daysBetween, //计算两个日期差
- isPhone: isPhone, //判断手机号是否合法
- isIDcard: isIDcard, //身份证号验证
- formatRichText, //富文本解析
- formatNumber: formatNumber, //日期补0
- toImageBase64: toImageBase64, //本地图片转base64
- getDateStr: getDateStr, //获取距今天几天后的月日
- getWeekDateStr: getWeekDateStr, //获取距今天几天后的星期几
- getfullDateStr: getfullDateStr, ////获取距今天几天后格式化的年月日
- RandomNumBoth: RandomNumBoth, //范围内的随机数字
- randomName: randomName, //随机字符串
- buildColor:buildColor,// 随机颜色值
- path:path,
- formatPhone,
- testPwd
- }
|