微信小程序格式化日期和文本长度的过滤器

格式化日期和文本长度的过滤器

一、日期过滤器

转化你的日期格式变为你想要的日期格式

  1. 新建time-filter.wxs文件,复制代码
    上代码
//局部组件过滤器
var abbreviation = function (value) {
  //实现文字只显示15个字符
  if (value.length > 15) {
    return value.slice(0, 15) + '...'
  } else {
    return value
  }
}
//时间日期格式
var dateFormat = function format(ts, option) {
  var date = getDate(ts)
  var year = date.getFullYear()
  var month = date.getMonth() + 1
  var day = date.getDate()
  var week = date.getDay()
  var hour = date.getHours()
  var minute = date.getMinutes()
  var second = date.getSeconds()

  //获取 年月日
  if (option == 'YY-MM-DD') return [year, month, day].map(formatNumber).join('-')

  //获取 年月
  if (option == 'YY-MM') return [year, month].map(formatNumber).join('-')

  //获取 年日
  if (option == 'MM-DD') return [month, day].map(formatNumber).join('-')

  //获取 年
  if (option == 'YY') return [year].map(formatNumber).toString()

  //获取 月
  if (option == 'MM') return [mont].map(formatNumber).toString()

  //获取 日
  if (option == 'DD') return [day].map(formatNumber).toString()

  //获取 年月日 周一 至 周日
  if (option == 'YY-MM-DD Week') return [year, month, day].map(formatNumber).join('-') + ' ' + getWeek(week)

  //获取 月日 周一 至 周日
  if (option == 'MM-DD Week') return [month, day].map(formatNumber).join('-') + ' ' + getWeek(week)

  //获取 周一 至 周日
  if (option == 'Week') return getWeek(week)

  //获取 时分秒
  if (option == 'hh-mm-ss') return [hour, minute, second].map(formatNumber).join(':')

  //获取 时分
  if (option == 'hh-mm') return [hour, minute].map(formatNumber).join(':')

  //获取 分秒
  if (option == 'mm-dd') return [minute, second].map(formatNumber).join(':')

  //获取 时
  if (option == 'hh') return [hour].map(formatNumber).toString()

  //获取 分
  if (option == 'mm') return [minute].map(formatNumber).toString()

  //获取 秒
  if (option == 'ss') return [second].map(formatNumber).toString()

  //默认 时分 年月日
  return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute].map(formatNumber).join(':')
}

//时间日期格式
var dateFormat2 = function format(ts, option) {
    var date = getDate(ts)
    var year = date.getFullYear()
    var month = date.getMonth() + 1
    var day = date.getDate()
    var week = date.getDay()
    var hour = date.getHours()
    var minute = date.getMinutes()
    var second = date.getSeconds()
  
    //获取 年月日
    if (option == 'YY-MM-DD') return [year, month, day].map(formatNumber).join('-')
  
    //获取 年月
    if (option == 'YY-MM') return [year, month].map(formatNumber).join('-')
  
    //获取 年日
    if (option == 'MM-DD') return [month, day].map(formatNumber).join('-')
  
    //获取 年
    if (option == 'YY') return [year].map(formatNumber).toString()
  
    //获取 月
    if (option == 'MM') return [mont].map(formatNumber).toString()
  
    //获取 日
    if (option == 'DD') return [day].map(formatNumber).toString()
  
    //获取 年月日 周一 至 周日
    if (option == 'YY-MM-DD Week') return [year, month, day].map(formatNumber).join('-') + ' ' + getWeek(week)
  
    //获取 月日 周一 至 周日
    if (option == 'MM-DD Week') return [month, day].map(formatNumber).join('-') + ' ' + getWeek(week)
  
    //获取 周一 至 周日
    if (option == 'Week') return getWeek(week)
  
    //获取 时分秒
    if (option == 'hh-mm-ss') return [hour, minute, second].map(formatNumber).join(':')
  
    //获取 时分
    if (option == 'hh-mm') return [hour, minute].map(formatNumber).join(':')
  
    //获取 分秒
    if (option == 'mm-dd') return [minute, second].map(formatNumber).join(':')
  
    //获取 时
    if (option == 'hh') return [hour].map(formatNumber).toString()
  
    //获取 分
    if (option == 'mm') return [minute].map(formatNumber).toString()
  
    //获取 秒
    if (option == 'ss') return [second].map(formatNumber).toString()
  
    //默认 时分 年月日
    return [year, month, day].map(formatNumber).join('-') + ' ' + [hour, minute].map(formatNumber).join(':')
  }

function formatNumber(n) {
  n = n.toString()
  return n[1] ? n : '0' + n
}

function getWeek(n) {
  switch (n) {
    case 1:
      return '星期一'
    case 2:
      return '星期二'
    case 3:
      return '星期三'
    case 4:
      return '星期四'
    case 5:
      return '星期五'
    case 6:
      return '星期六'
    case 7:
      return '星期日'
  }
}

module.exports = {
  abbreviation: abbreviation,
  dateFormat: dateFormat,
  dateFormat2: dateFormat2
}
  1. 在需要格式化时间格式的wxml文件里面引入过滤器
<!-- 引入过滤器 -->
<wxs src="../../../utils/time-filter.wxs" module="filter" />
  1. 需要格式化化的地方写入过滤器的函数,例如
{
   
   {filter.dateFormat(dispatchVo.createTime)}}

二、文字长度过滤

如果标题过长以至于样式打乱可以使用这个过滤器变成如下格式:
第一小学综合楼···

  1. 还是上面的代码
  2. 在需要格式化文字上的的wxml文件里面引入过滤器
<!-- 引入过滤器 -->
<wxs src="../../../utils/time-filter.wxs" module="filter" />
  1. 需要格式化化的地方写入过滤器的函数,例如
{
   
   {filter.abbreviation(dispatchVo.title)}}

猜你喜欢

转载自blog.csdn.net/qq_40247570/article/details/125198090
今日推荐