前端处理后端返回的时间

后端返回的数据是这样的,我们肯定不能直接渲染到页面上 要对数据进行处理

 

首先安装日期格式转换的插件

npm install moment

1.直接在组件里面使用

import moment from "moment";
  created(){
        
        this.nowDate = moment(要转换的时间).format('YYYY-MM-DD HH:mm')
    }

或者在组件里可以定义一个局部过滤器

<div>{{ nowDateTime | formatTime }}</div>

  filters: {
    formatTime(value) {
      return moment(value).format("YYYY-MM-DD HH:mm:ss");
    }
  },

2.挂载在原型上用

import moment from 'moment'
Vue.prototype.$moment = moment;

 组件中使用

data() {
    return {
      time: this.$moment().format("YYYY-MM-DD hh:mm:ss"), 
    };
  },

3.定义全局过滤器去格式化时间

Vue.filter('dateFormat', function (daraStr, pattern = 'YYYY-MM-DD HH:mm:ss') {
  return moment(daraStr).format(pattern)
})

4.不安装moment,自定义时间处理函数

    
     export function  format (time, format) {
    var t = new Date(time);
    var tf = function (i) { return (i < 10 ? '0' : '') + i };
    return format.replace(/yyyy|MM|dd|HH|mm|ss/g, function (a) {
      switch (a) {
        case 'yyyy':
          return tf(t.getFullYear())
          break;
        case 'MM':
          return tf(t.getMonth() + 1)
          break;
        case 'mm':
          return tf(t.getMinutes())
          break;
        case 'dd':
          return tf(t.getDate())
          break;
        case 'HH':
          return tf(t.getHours())
          break;
        case 'ss':
          return tf(t.getSeconds())
          break;
      }
    })
  }
format(element.beginTime,'yyyy-MM-dd HH:mm:ss')

在需要的组件直接引入调用就行

前端开发中,处理后端返回的日期时间数据并将其转换为仅包含日期的格式是一个常见的需求。根据后端返回的数据格式(如 `long` 类型时间戳、ISO 8601 格式字符串等),前端可以采用不同的方式进行处理。以下是几种常见方法: ### 1. 使用 JavaScript 原生方法处理时间戳 如果后端返回的是 `long` 类型的时间戳(例如 `1717027200000`),可以使用 JavaScript 的 `Date` 对象进行解析,并提取日期部分。 ```javascript function formatDateFromTimestamp(timestamp) { const date = new Date(timestamp); const year = date.getFullYear(); const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始 const day = String(date.getDate()).padStart(2, '0'); return `${year}-${month}-${day}`; } // 示例 const timestamp = 1717027200000; const formattedDate = formatDateFromTimestamp(timestamp); console.log(formattedDate); // 输出: 2024-06-01 ``` ### 2. 使用 `moment.js` 格式化日期 如果项目中使用了 `moment.js` 这个日期处理库,可以通过其 `format` 方法更简洁地完成日期格式化。 ```javascript import moment from "moment"; function formatDateWithMoment(timestamp) { return moment(timestamp).format("YYYY-MM-DD"); } // 示例 const timestamp = 1717027200000; const formattedDate = formatDateWithMoment(timestamp); console.log(formattedDate); // 输出: 2024-06-01 ``` ### 3. 处理 ISO 8601 格式的日期字符串 如果后端返回的是 ISO 8601 格式的日期时间字符串(如 `"2024-06-01T12:30:00"`),同样可以使用 `Date` 对象或 `moment.js` 进行处理。 ```javascript function formatDateFromISOString(isoString) { const date = new Date(isoString); const year = date.getFullYear(); const month = String(date.getMonth() + 1).padStart(2, '0'); const day = String(date.getDate()).padStart(2, '0'); return `${year}-${month}-${day}`; } // 示例 const isoString = "2024-06-01T12:30:00"; const formattedDate = formatDateFromISOString(isoString); console.log(formattedDate); // 输出: 2024-06-01 ``` ### 4. 使用 `dayjs` 轻量级库处理日期 对于追求性能优化的项目,可以使用轻量级的 `dayjs` 替代 `moment.js`,它提供了类似的 API。 ```javascript import dayjs from "dayjs"; function formatDateWithDayjs(dateInput) { return dayjs(dateInput).format("YYYY-MM-DD"); } // 示例 const isoString = "2024-06-01T12:30:00"; const formattedDate = formatDateWithDayjs(isoString); console.log(formattedDate); // 输出: 2024-06-01 ``` ### 5.Vue 组件中处理日期 如果使用 Vue 框架,可以在组件的生命周期钩子中进行日期格式化,或者在模板中使用过滤器。 ```javascript import moment from "moment"; export default { data() { return { nowDate: "" }; }, created() { const timestamp = 1717027200000; this.nowDate = moment(timestamp).format("YYYY-MM-DD"); } }; ``` ### 6. 在 React 中处理日期 在 React 应用中,可以在组件内部使用 `moment.js` 或 `dayjs` 进行日期格式化。 ```javascript import React, { useEffect, useState } from "react"; import moment from "moment"; function DateFormatter({ timestamp }) { const [formattedDate, setFormattedDate] = useState(""); useEffect(() => { setFormattedDate(moment(timestamp).format("YYYY-MM-DD")); }, [timestamp]); return <div>{formattedDate}</div>; } ``` ### 7. 使用后端统一格式化(可选) 如果希望减少前端处理逻辑,也可以在后端统一进行日期格式化。例如在 Spring Boot 项目中,可以通过自定义 `ObjectMapper` 实现日期格式的全局控制,这样返回前端的数据已经是格式化后的字符串 [^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值