| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383 |
- const formatTime = date => {
- 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();
- var t1 = [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(
- ':');
- var t2 = [year, month, day].map(formatNumber).join('-');
- var time = {
- t1: t1,
- t2: t2
- };
- return time;
- };
- function formatTimeComm(date, format) {
- var formateArr = ['Y', 'M', 'D', 'h', 'm', 's'];
- var returnArr = [];
- returnArr.push(date.getFullYear());
- returnArr.push(formatNumber(date.getMonth() + 1));
- returnArr.push(formatNumber(date.getDate()));
- returnArr.push(formatNumber(date.getHours()));
- returnArr.push(formatNumber(date.getMinutes()));
- returnArr.push(formatNumber(date.getSeconds()));
- for (var i in returnArr) {
- format = format.replace(formateArr[i], returnArr[i]);
- }
- return format;
- }
- /**
- * 获取上一个月
- *
- * @date 格式为yyyy-mm-dd的日期,如:2014-01-25
- */
- const getPreMonth = date => {
- var arr = date.split('-');
- var year = arr[0]; //获取当前日期的年份
- var month = arr[1]; //获取当前日期的月份
- var day = arr[2]; //获取当前日期的日
- var days = new Date(year, month, 0);
- days = days.getDate(); //获取当前日期中月的天数
- var year2 = year;
- var month2 = parseInt(month) - 1;
- if (month2 == 0) {
- //如果是1月份,则取上一年的12月份
- year2 = parseInt(year2) - 1;
- month2 = 12;
- }
- var day2 = day;
- var days2 = new Date(year2, month2, 0);
- days2 = days2.getDate();
- if (day2 > days2) {
- //如果原来日期大于上一月的日期,则取当月的最大日期。比如3月的30日,在2月中没有30
- day2 = days2;
- }
- if (month2 < 10) {
- month2 = '0' + month2; //月份填补成2位。
- }
- var t1 = year + '-' + month;
- var t2 = year2 + '-' + month2;
- var time = {
- t1: t1,
- t2: t2
- };
- return time;
- };
- const formatNumber = n => {
- n = n.toString();
- return n[1] ? n : '0' + n;
- };
- const formatTimes = t => {
- let second = t % 60;
- let minute = parseInt(t / 60 % 60);
- let hour = parseInt(t / 60 / 60);
- return formatNumber(hour) + ':' + formatNumber(minute) + ":" + formatNumber(second);
- };
- const formatDayTimes = t => {
- let second = t % 60;
- let minute = parseInt(t / 60 % 60);
- let hour = parseInt(t / 60 / 60 % 24);
- let day = parseInt(t / 60 / 60 / 24);
- return formatNumber(day) + '天' + formatNumber(hour) + ':' + formatNumber(minute) + ":" + formatNumber(second);
- };
- /**
- * 判断此对象是否是Object类型
- * @param {Object} obj
- */
- function isObject(obj) {
- return Object.prototype.toString.call(obj) === '[object Object]';
- }
- ;
- /**
- * 判断此类型是否是Array类型
- * @param {Array} arr
- */
- function isArray(arr) {
- return Object.prototype.toString.call(arr) === '[object Array]';
- }
- ;
- /**
- * 深度比较两个对象是否相同
- * @param {Object} oldData
- * @param {Object} newData
- */
- function equalsObj(oldData, newData) {
- // 类型为基本类型时,如果相同,则返回true
- if (oldData === newData) return true;
- if (isObject(oldData) && isObject(newData) && Object.keys(oldData).length === Object.keys(newData).length) {
- // 类型为对象并且元素个数相同
- // 遍历所有对象中所有属性,判断元素是否相同
- for (const key in oldData) {
- if (oldData.hasOwnProperty(key)) {
- if (!equalsObj(oldData[key], newData[key])) // 对象中具有不相同属性 返回false
- return false;
- }
- }
- } else if (isArray(oldData) && isArray(oldData) && oldData.length === newData.length) {
- // 类型为数组并且数组长度相同
- for (let i = 0, length = oldData.length; i < length; i++) {
- if (!equalsObj(oldData[i], newData[i])) // 如果数组元素中具有不相同元素,返回false
- return false;
- }
- } else {
- // 其它类型,均返回false
- return false;
- } // 走到这里,说明数组或者对象中所有元素都相同,返回true
- return true;
- }
- ; //时间戳转化
- function transTime(date) {
- var date = new Date(parseInt(date) * 1000);
- var year = date.getFullYear();
- var month = date.getMonth() + 1;
- var day = date.getDate();
- var hour = date.getHours();
- var minute = date.getMinutes();
- var second = date.getSeconds();
- return [year, month, day].map(formatNumber).join('-') + ' ' + [hour, minute, second].map(formatNumber).join(':');
- }
- ; // 节流
- function throttle(fn, gapTime) {
- if (gapTime == null || gapTime == undefined) {
- gapTime = 1500;
- }
- let _lastTime = null; // 返回新的函数
- return function() {
- let _nowTime = +new Date();
- if (_nowTime - _lastTime > gapTime || !_lastTime) {
- fn.apply(this, arguments); //将this和参数传给原函数
- _lastTime = _nowTime;
- }
- };
- };
- const isMobile = (value) => {
- var reg = /^1[3|4|5|6|7|8|9][0-9]{9}$/; //验证规则
- var flag = reg.test(value);
- if (!flag) {
- return false
- } else {
- return true
- }
- }
- const convertUrlObj = (data) => {
- var _result = [];
- for (var key in data) {
- var value = data[key];
- if (value.constructor == Array) {
- value.forEach(function(_value) {
- _result.push(key + "=" + _value);
- });
- } else {
- _result.push(key + '=' + value);
- }
- }
- return _result.join('&');
- }
- // 隐藏手机号中间四位
- function styleHintText(tel) {
- if (tel) {
- var reg = /^(\d{3})\d{4}(\d{4})$/;
- return tel.replace(reg, "$1****$2");
- }
- return '';
- }
- function getDateDiff(dateTimeStamp) {
- var minute = 1000 * 60;
- var hour = minute * 60;
- var day = hour * 24;
- var halfamonth = day * 15;
- var month = day * 30;
- var now = new Date().getTime();
- var diffValue = now - dateTimeStamp;
- if (diffValue < 0) {
- return;
- }
- var monthC = diffValue / month;
- var weekC = diffValue / (7 * day);
- var dayC = diffValue / day;
- var hourC = diffValue / hour;
- var minC = diffValue / minute;
- if (monthC >= 1) {
- result = "" + parseInt(monthC) + "月前";
- } else if (weekC >= 1) {
- result = "" + parseInt(weekC) + "周前";
- } else if (dayC >= 1) {
- result = "" + parseInt(dayC) + "天前";
- } else if (hourC >= 1) {
- result = "" + parseInt(hourC) + "小时前";
- } else if (minC >= 1) {
- result = "" + parseInt(minC) + "分钟前";
- } else
- result = "刚刚";
- return result;
- }
- function formatLocation(longitude, latitude) {
- if (typeof longitude === 'string' && typeof latitude === 'string') {
- longitude = parseFloat(longitude)
- latitude = parseFloat(latitude)
- }
- longitude = longitude.toFixed(2)
- latitude = latitude.toFixed(2)
- return {
- longitude: longitude.toString().split('.'),
- latitude: latitude.toString().split('.')
- }
- }
- function removeHtml(content) {
- var temp = content.replace(/<\/?.+?>/g, "");
- var result = temp.replace(/ /g, "");
- var test = result.replace(/<br>/ig, "");
- var text = test.replace(/ /ig, "");
- return text;
- }
- function styleDistanceKm(distance) {
- var distanceS = '';
- var disFloat = parseFloat(distance);
- if (disFloat > 1000) {
- disFloat = disFloat / 1000;
- distanceS = disFloat.toFixed(2) + 'km';
- } else {
- distanceS = distance + 'm';
- }
- return distanceS;
- }
- // 隐藏身份证
- function hideCard(content) {
- var card = content;
- var strcard = card.replace(/^(.{4})(?:\d+)(.{4})$/, "$1******$2");
- return strcard;
- }
- //判断时间是否大于当前时间
- function checkDate(date) {
- var myDate = new Date();
- var now = myDate.valueOf();
- var time = new Date(date).valueOf();
- if (now > time) {
- return false;
- } else {
- return true;
- }
- }
- /*比较t1 t2*/
- function getTimeSpan(str1, str2) {
- var data = {
- day: 0,
- hour: 0,
- minutes: 0,
- seconds: 0,
- isExp: true
- };
- function cut2(t) {
- return t.toString().length > 1 ? t : 0 + "" + t;
- }
- if (!str1 || !str2) {
- data.isExp = false;
- return data;
- }
- var t1 = new Date((str1 * 1));
- var t2 = new Date((str2 * 1));
- if (t2 >= t1) {
- data.isExp = false;
- return data;
- }
- data.isExp = true;
- var dateDiff = t1 - t2; //时间差的毫秒数
- data.day = Math.floor(dateDiff / (24 * 3600 * 1000)); //计算出相差天数
- var leave1 = dateDiff % (24 * 3600 * 1000) //计算天数后剩余的毫秒数
- data.hour = cut2(Math.floor(leave1 / (3600 * 1000))) //计算出小时数
- //计算相差分钟数
- var leave2 = leave1 % (3600 * 1000) //计算小时数后剩余的毫秒数
- data.minutes = cut2(Math.floor(leave2 / (60 * 1000))) //计算相差分钟数
- //计算相差秒数
- var leave3 = leave2 % (60 * 1000);
- data.seconds = cut2(Math.round(leave3 / 1000))
- return data;
- }
- function preText(pretext) {
- if(pretext){
- return pretext.replace(/\r\n/g, '<br/>')
- .replace(/\n/g, '<br/>')
- // .replace(/\s/g, ' ')
- }else{
- return '';
- }
- }
- module.exports = {
- formatTime: formatTime,
- formatTimes: formatTimes,
- formatTimeComm: formatTimeComm,
- formatDayTimes: formatDayTimes,
- equalsObj: equalsObj,
- isObject: isObject,
- isArray: isArray,
- transTime: transTime,
- throttle: throttle,
- getPreMonth: getPreMonth,
- isMobile: isMobile,
- convertUrlObj: convertUrlObj,
- getDateDiff: getDateDiff,
- styleHintText: styleHintText,
- formatLocation: formatLocation,
- removeHtml: removeHtml,
- styleDistanceKm: styleDistanceKm,
- hideCard: hideCard,
- checkDate: checkDate,
- getTimeSpan: getTimeSpan,
- preText: preText
- };
|