当前位置:首页 > VUE

vue实现文章发表时间

2026-02-21 17:23:08VUE

Vue 实现文章发表时间的方法

在 Vue 中实现文章发表时间通常需要结合日期格式化库或原生 JavaScript 的日期处理功能。以下是几种常见实现方式:

使用原生 JavaScript 格式化日期

通过 new Date() 和日期方法获取并格式化时间:

// 在组件中
data() {
  return {
    article: {
      publishTime: '2023-11-15T08:30:00Z' // ISO 格式时间
    }
  }
},
computed: {
  formattedTime() {
    const date = new Date(this.article.publishTime);
    return `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()} ${date.getHours()}:${date.getMinutes()}`;
  }
}

模板中直接使用计算属性:

<template>
  <p>发表时间:{{ formattedTime }}</p>
</template>

使用 Moment.js 库

Moment.js 是流行的日期处理库,需先安装:

npm install moment

组件中使用:

import moment from 'moment';

export default {
  data() {
    return {
      article: {
        publishTime: '2023-11-15T08:30:00Z'
      }
    }
  },
  computed: {
    formattedTime() {
      return moment(this.article.publishTime).format('YYYY-MM-DD HH:mm');
    }
  }
}

使用 Day.js 库(轻量替代)

Day.js 是 Moment.js 的轻量替代方案:

vue实现文章发表时间

npm install dayjs

组件中使用:

import dayjs from 'dayjs';

export default {
  computed: {
    formattedTime() {
      return dayjs(this.article.publishTime).format('YYYY-MM-DD HH:mm');
    }
  }
}

使用 Vue 过滤器

可定义全局过滤器统一处理时间格式:

// main.js
import Vue from 'vue';
import dayjs from 'dayjs';

Vue.filter('formatTime', (value) => {
  return dayjs(value).format('YYYY-MM-DD HH:mm');
});

模板中使用:

vue实现文章发表时间

<p>发表时间:{{ article.publishTime | formatTime }}</p>

处理相对时间(如“3天前”)

使用 Day.js 的 relativeTime 插件:

import dayjs from 'dayjs';
import relativeTime from 'dayjs/plugin/relativeTime';
import 'dayjs/locale/zh-cn'; // 中文

dayjs.extend(relativeTime);
dayjs.locale('zh-cn');

// 计算属性
relativeTime() {
  return dayjs(this.article.publishTime).fromNow();
}

从后端 API 获取时间

假设通过 API 获取文章数据:

export default {
  data() {
    return {
      article: {}
    }
  },
  async created() {
    const res = await axios.get('/api/article/123');
    this.article = res.data;
  }
}

确保后端返回的时间字段为 ISO 字符串或时间戳。

时区处理

使用 dayjs-timezone 处理时区:

import dayjs from 'dayjs';
import timezone from 'dayjs/plugin/timezone';
import utc from 'dayjs/plugin/utc';

dayjs.extend(utc);
dayjs.extend(timezone);

// 转换为上海时区
dayjs.tz(this.article.publishTime, 'Asia/Shanghai').format('YYYY-MM-DD HH:mm');

关键注意事项

  • 确保时间数据从后端返回时包含时区信息(如 ISO 8601 格式)。
  • 前端格式化时需明确是否需要转换时区。
  • 对于多语言项目,日期格式需适配本地化需求(如 DD/MM/YYYYMM/DD/YYYY)。

以上方法可根据项目需求选择,轻量级项目推荐 Day.js,复杂场景可使用 Moment.js 或原生方案。

标签: 时间文章
分享给朋友:

相关文章

vue实现时间

vue实现时间

Vue 实现时间显示的方法 在Vue中实现时间显示可以通过多种方式完成,包括使用原生JavaScript、第三方库或Vue插件。以下是几种常见的方法: 使用原生JavaScript显示当前时间 通过…

vue时间跨度实现

vue时间跨度实现

Vue 时间跨度实现方法 使用计算属性计算时间差 通过计算属性可以方便地计算两个日期之间的时间差。需要先定义开始和结束日期,然后在计算属性中进行计算。 computed: { timeDiffe…

react如何获取当前时间

react如何获取当前时间

获取当前时间的几种方法 在React中获取当前时间可以通过多种方式实现,以下是常见的几种方法: 使用JavaScript的Date对象 const currentTime = new Date()…

php实现软件时间限制实现

php实现软件时间限制实现

实现时间限制的基本方法 在PHP中实现软件时间限制通常涉及检查当前时间与预设的有效期限。以下是几种常见实现方式: 使用时间戳比较 通过比较当前时间戳与预设的过期时间戳来判断是否过期: $expir…

js留言板实现显示时间

js留言板实现显示时间

实现留言板显示时间的方法 在JavaScript留言板中显示时间,可以通过以下方式实现: 获取当前时间 const currentTime = new Date(); 格式化时间显示 f…

jquery获取时间

jquery获取时间

获取当前时间 使用jQuery获取当前时间可以通过JavaScript的Date对象实现。jQuery本身不提供时间处理函数,但可以结合原生JavaScript实现。 var currentTime…