龙空技术网

Vue中的开发小技巧之如何实现日期时间格式化

波哥带你学Java 183

前言:

现在大家对“c语言格式化时间”大概比较注意,咱们都想要知道一些“c语言格式化时间”的相关文章。那么小编在网络上网罗了一些关于“c语言格式化时间””的相关知识,希望小伙伴们能喜欢,你们一起来学习一下吧!

  在前面我们介绍了vue的综合小案例把前面介绍的一些常用指令我们综合运用了一下,但是还有个小问题,就是显示的'创建时间 cTime'的格式没有处理,虽然我们可以在后台服务处理好后再传递给前端,但是在前端应该也需要能够自主地处理,而我们刚刚介绍了Vue中的过滤器,刚好可以通过Vue的过滤器来解决这个问题,我们来具体看下~

在这里插入图片描述

过滤器应用案例代码

  以下是没有格式化处理之前的代码,效果图就是上面的截图

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <meta http-equiv="X-UA-Compatible" content="ie=edge">    <title>Document</title>    <script src="./lib/vue-2.4.0.js"></script>    <link rel="stylesheet" href="./lib/bootstrap-3.3.7.css"></head><body>    <div id="app">        <div class="panel panel-primary">              <div class="panel-heading">                    <h3 class="panel-title">品牌管理</h3>              </div>              <div class="panel-body form-inline">                    <label>                    Id:                    <input type="text" class="form-control" v-model="id" >                    </label>                    <label>                    Name:                    <input type="text" class="form-control" v-model="name">                    </label>                    <input type="button" value="添加"                         class="btn btn-primary" @click='add'>                    <label>                        搜索名称关键字:                        <input type="text" class="form-control" v-model="keywords">                    </label>                  </div>        </div>        <table class="table table-bordered table-hover table-striped">            <thead>                <tr>                    <th>id</th>                    <th>name</th>                    <th>cTime</th>                    <th>操作</th>                </tr>            </thead>            <tbody>                <tr v-for="item in search(keywords)" :key="item.id">                    <td>{{item.id}}</td>                    <td>{{item.name}}</td>                    <td>{{item.ctime  }}</td>                    <td><a href="" @click.prevent="del(item.id)">删除</a></td>                </tr>            </tbody>        </table>    </div>    <script>        var vm = new Vue({            el: "#app",            data: {                id:'',                name:'',                keywords:'',                list:[                    {id:1,name:'奔驰',ctime:new Date()},                    {id:2,name:'宝马',ctime:new Date()}                ]            },            methods: {                add(){                    // 添加记录到list中                    this.list.push({id:this.id,name:this.name,ctime:new Date()})                    // 将输入框置空                    this.id=this.name=''                },                del(id){                    // some方法循环数组,返回true可以终止循环                    // this.list.some((item,i) =>{                     //   if(item.id == id){                            // 移除记录 1 移除一条记录                     //       this.list.splice(i,1);                            // 返回true 终止循环                      //      return true;                      //  }                    //})                     // 通过findIndex方法获取要删除记录的index                    var index = this.list.findIndex(item => {                        if(item.id == id){                            return true                        }                    })                    // 通过splice方法来移除记录                    this.list.splice(index,1);                },                search(keywords){                    // 保存新的数组                   // var newList = []                   // this.list.forEach(item => {                        // 判断循环的记录是否包含的查询的关键字                       // if(item.name.indexOf(keywords) != -1){                            // 将循环的记录添加到新的数组中                         //   newList.push(item)                      //  }                  //  })                    // 返回数组信息                   // return newList                  // filter 过滤  返回满足条件的数组                  return  this.list.filter(item => {                       // includes 是否包含                       if(item.name.includes(keywords)){                            return item                       }                   })                }            }        })    </script></body></html>
局部过滤器

  此处案例中我们通过局部过滤器来实现,当然你也可以通过全局过滤器来实现

在这里插入图片描述

显示效果

在这里插入图片描述

我们发现显示的月份7最好是显示为07,这时我们可以使用一个ES6中新增的方法叫 padStart方法

方法

说明

String.prototype.padStart(maxLength, fillString='')

字符串长度为maxLength,不够的在开头用fillString填充,

例如 :"123".padStart(6,"a")="aaa123"

String.prototype.padEnd(maxLength, fillString='')

这个和上面类似,是在结尾处填充,

例如"123".padEnd(6,"a")="123aaa"

在这里插入图片描述

在这里插入图片描述

此处仅仅介绍padStart的用法,实际开发场景中应该将天数也要padStart处理

显示时分秒

  有时我们显示Date类型数据的时候,我们希望能够把时分秒也给显示出来,这时为了灵活点我们可以通过参数来动态设置。

在这里插入图片描述

调用过滤器的时候传递参数

在这里插入图片描述

效果

在这里插入图片描述

最后完成代码

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <meta http-equiv="X-UA-Compatible" content="ie=edge">    <title>Document</title>    <script src="./lib/vue-2.4.0.js"></script>    <link rel="stylesheet" href="./lib/bootstrap-3.3.7.css"></head><body>    <div id="app">        <div class="panel panel-primary">              <div class="panel-heading">                    <h3 class="panel-title">品牌管理</h3>              </div>              <div class="panel-body form-inline">                    <label>                    Id:                    <input type="text" class="form-control" v-model="id" >                    </label>                    <label>                    Name:                    <input type="text" class="form-control" v-model="name">                    </label>                    <input type="button" value="添加"                         class="btn btn-primary" @click='add'>                    <label>                        搜索名称关键字:                        <input type="text" class="form-control" v-model="keywords">                    </label>                  </div>        </div>        <table class="table table-bordered table-hover table-striped">            <thead>                <tr>                    <th>id</th>                    <th>name</th>                    <th>cTime</th>                    <th>操作</th>                </tr>            </thead>            <tbody>                <tr v-for="item in search(keywords)" :key="item.id">                    <td>{{item.id}}</td>                    <td>{{item.name}}</td>                    <td>{{item.ctime | msgDateFormat('yyyy-mm-dd hh-mi-ss') }}</td>                    <td><a href="" @click.prevent="del(item.id)">删除</a></td>                </tr>            </tbody>        </table>    </div>    <script>        var vm = new Vue({            el: "#app",            data: {                id:'',                name:'',                keywords:'',                list:[                    {id:1,name:'奔驰',ctime:new Date()},                    {id:2,name:'宝马',ctime:new Date()}                ]            },            methods: {                add(){                    // 添加记录到list中                    this.list.push({id:this.id,name:this.name,ctime:new Date()})                    // 将输入框置空                    this.id=this.name=''                },                del(id){                    // some方法循环数组,返回true可以终止循环                    // this.list.some((item,i) =>{                     //   if(item.id == id){                            // 移除记录 1 移除一条记录                     //       this.list.splice(i,1);                            // 返回true 终止循环                      //      return true;                      //  }                    //})                     // 通过findIndex方法获取要删除记录的index                    var index = this.list.findIndex(item => {                        if(item.id == id){                            return true                        }                    })                    // 通过splice方法来移除记录                    this.list.splice(index,1);                },                search(keywords){                    // 保存新的数组                   // var newList = []                   // this.list.forEach(item => {                        // 判断循环的记录是否包含的查询的关键字                       // if(item.name.indexOf(keywords) != -1){                            // 将循环的记录添加到新的数组中                         //   newList.push(item)                      //  }                  //  })                    // 返回数组信息                   // return newList                  // filter 过滤  返回满足条件的数组                  return  this.list.filter(item => {                       // includes 是否包含                       if(item.name.includes(keywords)){                            return item                       }                   })                }            },            filters:{ // 通过局部过滤器来实现                msgDateFormat:function(msg,pattern=''){                    // 将字符串转换为Date类型                    var mt = new Date(msg)                    // 获取年份                    var y = mt.getFullYear()                    // 获取月份 从0开始                     var m = (mt.getMonth()+1).toString().padStart(2,"0")                    // 获取天数                    var d = mt.getDate();                    if(pattern === 'yyyy-mm-dd'){                        return y+"-"+m+"-"+d                    }                    // 获取小时                    var h = mt.getHours().toString().padStart(2,"0")                    // 获取分钟                    var mi = mt.getMinutes().toString().padStart(2,"0")                    // 获取秒                    var s = mt.getSeconds().toString().padStart(2,"0")                    // 拼接为我们需要的各式                    return y+"-"+m+"-"+d+" "+h+":"+mi+":"+s                }            }        })    </script></body></html>

标签: #c语言格式化时间