• 微信小程序时间格式化总结


    时间格式化,这个问题在很多项目中都会遇到,后端返回的时间格式一般都是一致的,而前端的展示可能是2021年3月12日 15:00:00或者2021-03-12 15:00:00 亦或者是2021.03.12 15:00:00等等,这就需要前端根据UI需要展示,看到很多人是直接处理该字段的值,例如obj.startTime = moment(obj.startTime).format('YYYY-MM-DD HH:mm:ss')。个人认为这是字段展示的不同形式,没有必要改变该字段,而是应该使用filter,格式化数据的展示。

    然而在小程序里 ios真机上不支持 2020-06-28 00:00:00这种时间格式, 必须转成2020/06/28 00:00:00 再进行格式化。

    因此根据以上总结,小程序时间格式化的写法有:

     1 // 时间格式过滤器
     2 Vue.filter('formatDate', function (time, fmt) {
     3   // 有些数据后端没有处理格式如 2021-03-01 00:00:00.0
     4   time = time.replace('.0', '');
     5   let value = time && time.replace(/-/g, '/');
     6   let getDate = new Date(value);
     7   let o = {
     8    'M+': getDate.getMonth() + 1,
     9    'd+': getDate.getDate(),
    10    'h+': getDate.getHours(),
    11    'm+': getDate.getMinutes(),
    12    's+': getDate.getSeconds(),
    13    'q+': Math.floor((getDate.getMonth() + 3) / 3),
    14    'S': getDate.getMilliseconds()
    15   };
    16   if (/(y+)/.test(fmt)) {
    17    fmt = fmt.replace(RegExp.$1, (getDate.getFullYear() + '').substr(4 - RegExp.$1.length))
    18   }
    19   for (let k in o) {
    20    if (new RegExp('(' + k + ')').test(fmt)) {
    21     fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
    22    }
    23   }
    24   return fmt;
    25  });

    页面上的使用方法是:

     <div class="info-item">
              {{ item.startDate | formatDate('yyyy年MM月dd日') }}~{{ item.endDate | formatDate('yyyy年MM月dd日') }}
            </div>
    <div class="date f24">有效期: {{ item.startDate | formatDate('yyyy.MM.dd') }}~{{ item.endDate | formatDate('yyyy.MM.dd') }}</div>

    这样就可以根据页面UI随意展示时间格式,而非每个字段自己处理一遍。

    开心写代码,愉快工作~多多指教

  • 相关阅读:
    POJ 3710 Christmas Game#经典图SG博弈
    POJ 2599 A funny game#树形SG(DFS实现)
    POJ 2425 A Chess Game#树形SG
    LeetCode Array Easy 122. Best Time to Buy and Sell Stock II
    LeetCode Array Easy121. Best Time to Buy and Sell Stock
    LeetCode Array Easy 119. Pascal's Triangle II
    LeetCode Array Easy 118. Pascal's Triangle
    LeetCode Array Easy 88. Merge Sorted Array
    ASP.NET MVC 学习笔记之 MVC + EF中的EO DTO ViewModel
    ASP.NET MVC 学习笔记之面向切面编程与过滤器
  • 原文地址:https://www.cnblogs.com/scuplting-in-time/p/14524536.html
Copyright © 2020-2023  润新知