vue for循环取值时日期格式化问题

在Vue项目中,遇到后台返回的日期格式为'yyyy-MM-dd hh:mm:ss',需要将其转换为'yyyy-MM-dd'。通过使用自定义filters过滤器实现格式化,但在for循环中发现当月和日为单数时格式不统一。解决方案是在过滤器中添加判断,用'0'补足单数月份和日期,确保日期显示的一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在写一个列表显示时,后台返回的数据时时间格式为 “yyyy-MM-dd hh:mm:ss”
如图:在这里插入图片描述

代码为:

<div v-for="(item,index) in showOpinionLists" :key="index" class="pagination-list">
	<!--此处代码省略-->
    ......
    <div class="pagination-date">
    	<div :style="item.status === '1' ? 'background-color: #5cbb5c;':'background-color: #409eff;'" class="handle-status">{{ item.status === '1' ?'已完结':'待处理' }}</div>
            <div class="handle-date">
              <span>{{ item.createtime }}</span>
            </div>
         </div>
    </div>
</div>

想要把时间格式改为 “yyyy-MM-dd”,因为时间显示时靠for循环来赋值的,这时就需要用到filters过滤器
代码如下:

filters: {
    formatDate(time) {
      var date = new Date(time);
      var year=date.getFullYear();
      var month=date.getMonth()+1;
      var date=date.getDate();
      return   year+"-"+month+"-"+date
    }
  },
<div class="handle-date">
    <span>{{ item.createtime | formatDate}}</span>
</div>

此时时间显示为在这里插入图片描述
但是月份month和日期date为单数时,日期格式不统一
在这里插入图片描述
此时就需要靠 ‘0’ 来补齐,代码为

formatDate(time) {
	var date = new Date(time);
    var year=date.getFullYear();
    var month=date.getMonth()+1;
    var date=date.getDate();
    return year+"-"+month.toString().padStart(2,'0')+"-"+date.toString().padStart(2,'0')
}

显示:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值