目录
一、日期转换补位
二、日期转换
三、日期转换-自定输出内容
四、Json数据转换为url字符串
五、url转为Json数据
六、通过时间戳计算倒计时
七、通过parseInt计算倒计器和Promise返回结束
八、清除两边空格
九、截取部分字符
十、单位转换:px转换为rpx
十一、单位转换:rpx转为px
const formatNumber = n => { n = n.toString() return n[1] ? n : '0' + n }
/** * 日期转换 * @param date 日期对象 * @param symbol 年月日分隔符号 */ const formatDate = (date, symbol) => { symbol = 'string'!==typeof symbol?'/':symbol; 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() return [year, month, day].map(formatNumber).join(symbol) + ' ' + [hour, minute, second].map(formatNumber).join(':') }
/** * 日期转换 * @param date 日期对象 * @param format 格式化文本 YYYY 年 MM 月 DD 日 HH 小时 ii 分钟 ss 秒 */ const formatDate = (date, format) => { format = 'undefined'===typeof symbol?'YYYY-MM-DD HH:ii:ss':format; format = format.replace(/YYYY/gi, date.getFullYear()); format = format.replace(/MM/gi, formatNumber(date.getMonth() + 1)); format = format.replace(/DD/gi, formatNumber(date.getDate())); format = format.replace(/HH/gi, formatNumber(date.getHours())); format = format.replace(/ii/gi, formatNumber(date.getMinutes())); format = format.replace(/ss/gi, formatNumber(date.getSeconds())); return format }
const json2url = () => { var _keys = Object.keys(json); var _urlArr = []; for(var i in _keys){ _urlArr.push(_keys[i]+'='+json[_keys[i]]); } return _urlArr.join("&"); }
const getUrlVars = (url) => { var hash; var myJson = {}; var hashes = url.split('&'); for (var i = 0; i < hashes.length; i++) { hash = hashes[i].split('='); myJson[hash[0]] = hash[1]; } return myJson; }
/** * 倒计时功能 * @param _stamp 剩余时间戳 * @param _format 输出格式 */ const getLastTime = (_stamp, _format) => { _format = 'undefined'===typeof symbol?'DD日 HH:ii:ss':format; let _currentDate = new Date(), _endDate = new Date(_stamp), _cha = _endDate.getTime() - _currentDate.getTime(); if(_cha<=0){ return null; } var _day = Math.floor(_cha/86400); //计算剩余天数 var _hours = Math.floor(_cha%86400/3600); //计算剩余小时数 var _minutes = Math.floor(_cha%86400%3600/60); //计算剩余的分钟数 var _seconds = Math.floor(_cha%86400%3600%60); //计算剩余的秒数 // _format = _format.replace(/DD/gi, formatNumber(_day)); _format = _format.replace(/HH/gi, formatNumber(_hours)); _format = _format.replace(/ii/gi, formatNumber(_minutes)); _format = _format.replace(/ss/gi, formatNumber(_seconds)); return _format; }
/** * 倒计时 * @param _date 日期对象 * @param _format 格式化文本 */ const clacLastTime = (_date, _format) => { _format = 'undefined'===typeof _format?'DD日 HH:ii:ss':_format; let _startStamp = new Date().getTime(), _endStamp = _date.getTime(), _cha = (_endStamp - _startStamp) / 1000, _resultStr = ''; var day = parseInt(_cha / 60 / 60 / 24, 10); //计算剩余天数 var hour = parseInt(_cha / 60 / 60 % 24, 10); //计算剩余的小时数 var minute = parseInt(_cha / 60 % 60, 10); //计算剩余的分钟数 var second = parseInt(_cha % 60, 10); //计算剩余的秒数 // _format = _format.replace(/DD/gi, formatNumber(_day)); _format = _format.replace(/HH/gi, formatNumber(_hours)); _format = _format.replace(/ii/gi, formatNumber(_minutes)); _format = _format.replace(/ss/gi, formatNumber(_seconds)); return new Promise((resolve, reject) => { if(_cha<0){ reject(); }else{ resolve(_format); } }); }
/** * 清除两边空格 */ const trimStr = v => { return 'string' === typeof v ? v.replace(/(^\s+)|(\s+$)/g, "") : v; }
/** * 截取字符串部分字符转换为*号 * @param value 被替换的字符串 * @param start 开始位置 * @param end 结束位置 * @param symbol 需替换成的字符符号 */ const truncateStr = (value, start, end, symbol) => { if('string'!==typeof value) throw 'Parameter value must be a string'; //检测字符串和范围有校性 if(!(value.length>start&&end>start)) return value; return value.split('').map((word, i) => { return i>=start&&i<=end?symbol:word }).join(''); }
/** * px转rpx * @param {*} _val */ const px2rpx = _val => { let _sysInfo = wx.getSystemInfoSync(); return parseFloat((parseInt(_val) * 750 / _sysInfo['windowWidth']).toFixed(2)); }
/** * rpx转为px * @param _val */ const rpx2px = _val => { let _sysInfo = wx.getSystemInfoSync(); return parseFloat((parseInt(_val) / 750 * _sysInfo['windowWidth']).toFixed(2)); }