vue转换时间格式的过滤器

我会带着你远行 2023-02-25 11:25 83阅读 0赞

问题背景

既然是做系统,通常都离不开时间的装换,今天遇到的这个功能是做个vueformatDate 时间转换filter 过滤器
需求如下:

  • 提前封装好过滤器formatDate
  • data里面定义 date: new Date()
  • 直接template可以使用 { {date|formatDate(this)}}

解决方案

效果展示
在这里插入图片描述
核心代码

  1. methods:{
  2. setZero(a) { //设置小于10的数字在加0
  3. return a < 10 ? "0" + a : a;
  4. },
  5. },
  6. filters:{
  7. //zhengkai.blog.csdn.net
  8. //格式化当前时间
  9. formatDate(date,vm) {
  10. let str = "";
  11. let weekDay = [
  12. "星期天",
  13. "星期一",
  14. "星期二",
  15. "星期三",
  16. "星期四",
  17. "星期五",
  18. "星期六"
  19. ];
  20. str += vm.setZero(date.getFullYear()) + "年"; //获取年份
  21. str += vm.setZero(date.getMonth() + 1) + "月"; //获取月份
  22. str += vm.setZero(date.getDate()) + "日"; //获取日
  23. str += " " + weekDay[date.getDay()]; //获取星期
  24. //如果需要具体到时分秒请加上以下内容:
  25. /*str += " " + vm.setZero(date.getHours()) + ":"; //获取时 str += " " + vm.setZero(date.getMinutes()) + ":"; //获取分 str += vm.setZero(date.getSeconds()); //获取秒*/
  26. return str;
  27. }
  28. }

所有代码

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>TFS</title>
  6. <meta name="renderer" content="webkit">
  7. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  8. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  9. <meta charset="UTF-8">
  10. <!-- import CSS -->
  11. <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  12. </head>
  13. <body>
  14. <div id="app">
  15. <el-card class="box-card">
  16. <div slot="header" class="clearfix">
  17. <span>今日招标信息 {
  18. {date|formatDate(this)}}</span>
  19. <el-button style="float: right; padding: 3px 0" type="text">操作按钮</el-button>
  20. </div>
  21. <div v-for="o in 10" :key="o" class="text item">
  22. {
  23. {'列表内容 ' + o }}
  24. </div>
  25. </el-card>
  26. </div>
  27. </body>
  28. <!-- import Vue before Element -->
  29. <script src="https://unpkg.com/vue/dist/vue.js"></script>
  30. <!-- import JavaScript -->
  31. <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  32. <script> let vm = new Vue({ el: '#app', data: function() { return { date: new Date(), } }, methods:{ setZero(a) { //设置小于10的数字在加0 return a < 10 ? "0" + a : a; }, }, filters:{ //zhengkai.blog.csdn.net //格式化当前时间 formatDate(date,vm) { let str = ""; //如果需要星期请加上 let weekDay = [ "星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" ]; str += vm.setZero(date.getFullYear()) + "年"; //获取年份 str += vm.setZero(date.getMonth() + 1) + "月"; //获取月份 str += vm.setZero(date.getDate()) + "日"; //获取日 str += " " + weekDay[date.getDay()]; //获取星期 //如果需要具体到时分秒请加上以下内容: /*str += " " + vm.setZero(date.getHours()) + ":"; //获取时 str += " " + vm.setZero(date.getMinutes()) + ":"; //获取分 str += vm.setZero(date.getSeconds()); //获取秒*/ return str; } } }) </script>
  33. </html>

发表评论

表情:
评论列表 (有 0 条评论,83人围观)

还没有评论,来说两句吧...

相关阅读