index.js 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /**
  2. * 功能:全局过滤器
  3. * 作者:小莫唐尼
  4. * 邮箱:studio@925i.cn
  5. * 时间:2022年07月21日 17:39:04
  6. * 版本:v0.1.0
  7. * 修改记录:
  8. * 修改内容:
  9. * 修改人员:
  10. * 修改时间:
  11. */
  12. export default {
  13. /**
  14. * 功能描述:时间格式化,将指定的时间戳(或正常的日期)转换为带格式的日期
  15. *
  16. * 参数说明:
  17. * 1.支持格式化 yyyy年MM月dd日 HH点mm分ss秒 星期w q季
  18. * 2.对象形式传入 { d:'2021-06-04',f:'yyyy年' } d是必传项,f可不传(默认yyyy-MM-dd HH:mm:ss)
  19. * 使用示例:
  20. * 1:<view>{{ dateTimeParamName | formatTime }}</view>
  21. * 2:<view>{{ { d: '2021-06-04', f: 'yyyy' } | formatTime }}</view>
  22. * 3:<view>{{ { d: dateTimeParamName, f: 'yyyy年MM月dd日 HH点mm分ss秒 星期w q季' } | formatTime }}</view>
  23. * 特别说明: 由于uniapp中的filter 不支持多参数,但是允许传入对象的形式,故以此方式实现!
  24. */
  25. formatTime: function(data) {
  26. let _dateTime = new Date(data);
  27. let _fmt = 'yyyy-MM-dd HH:mm:ss';
  28. if (_dateTime == 'Invalid Date') {
  29. if (data.d == undefined || data.d == null || data.d == "") {
  30. console.error('日期参数不正确,传入的参数列表:', data);
  31. return ''
  32. };
  33. _dateTime = new Date(data.d);
  34. if (_dateTime == 'Invalid Date') {
  35. console.error('日期参数不正确,传入的参数列表:', data);
  36. return '111'
  37. }
  38. if (data.hasOwnProperty('f')) {
  39. _fmt = data.f
  40. }
  41. }
  42. const _weekDays = ["日", "一", "二", "三", "四", "五", "六"];
  43. const _seasons = ["冬", "春", "夏", "秋"];
  44. const o = {
  45. "M+": _dateTime.getMonth() + 1, //月份
  46. "d+": _dateTime.getDate(), //日
  47. "H+": _dateTime.getHours(), //小时
  48. "m+": _dateTime.getMinutes(), //分
  49. "s+": _dateTime.getSeconds(), //秒
  50. "w+": _weekDays[_dateTime.getDay()], // 星期几
  51. "q+": _seasons[Math.floor((_dateTime.getMonth() + 3) / 3)], //季度
  52. S: _dateTime.getMilliseconds(), //毫秒
  53. };
  54. if (/(y+)/.test(_fmt)) {
  55. _fmt = _fmt.replace(
  56. RegExp.$1,
  57. (_dateTime.getFullYear() + "").substr(4 - RegExp.$1.length)
  58. );
  59. }
  60. for (let k in o) {
  61. if (new RegExp("(" + k + ")").test(_fmt)) {
  62. _fmt = _fmt.replace(
  63. RegExp.$1,
  64. RegExp.$1.length == 1 ?
  65. o[k] :
  66. ("00" + o[k]).substr(("" + o[k]).length)
  67. );
  68. }
  69. }
  70. return _fmt;
  71. },
  72. };