ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

小程序常用的功能函数

2021-08-03 11:32:06  阅读:176  来源: 互联网

标签:常用 const 函数 format formatNumber 程序 param date return


目录

一、日期转换补位

二、日期转换

三、日期转换-自定输出内容

四、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
}

四、Json数据转换为url字符串

const json2url = () => {
  var _keys = Object.keys(json);
  var _urlArr = [];
  for(var i in _keys){
    _urlArr.push(_keys[i]+'='+json[_keys[i]]);
  }
  return _urlArr.join("&");
}

五、url转为Json数据

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;
}

七、通过parseInt计算倒计器和Promise返回结束

/**
 * 倒计时
 * @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

/**
 * px转rpx
 * @param {*} _val 
 */
const px2rpx = _val => {
  let _sysInfo = wx.getSystemInfoSync();
  return parseFloat((parseInt(_val) * 750 / _sysInfo['windowWidth']).toFixed(2));
}

十一、单位转换:rpx转为px

/**
 * rpx转为px
 * @param _val
 */
const rpx2px = _val => {
  let _sysInfo = wx.getSystemInfoSync();
  return parseFloat((parseInt(_val) / 750 * _sysInfo['windowWidth']).toFixed(2));
}

标签:常用,const,函数,format,formatNumber,程序,param,date,return
来源: https://blog.csdn.net/jiciqiang/article/details/116521433

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有