袁来如此的工作笔记
袁来如此的工作笔记
竹杖芒鞋轻胜马,谁怕? 一蓑烟雨任平生。

vue.js 时间戳转换日期格式

浏览量:224

时间戳可以理解为过滤器的一种方式,日期格式的转换在项目中也经常遇到,今天我来总结项目中踩过的坑,以及解决方法。

时间戳转换日期格式有三种方法:

方式一
1.运行 cmd 执行 npm install moment --save 或者 yarn add moment 命令,安装 moment 插件
2.在 main.js 文件中引入 moment 插件,并定义全局过滤器

import moment from \moment\
Vue.filter(\dateFormat\,(dateStr,pattern = \YYYY-DD-MM HH:mm:ss\)=>{
    return moment(dateStr).format(pattern)
})

3. 在后续组件中,如果需要转换时间戳,那么在直接引用 dateFormat 即可
引用dateFormat 

<p>{{time | dateFormat}}</p>


方式二
直接在 main.js 文件中定义一个全局过滤器
Vue.filter(\dateFormat\, function(originVal) {
  const dt = new Date(originVal)
  const y = dt.getFullYear()
  const m = (dt.getMonth() + 1 + \\).padStart(2, \0\)
  const d = (dt.getDate() + \\).padStart(2, \0\)
  const hh = (dt.getHours() + \\).padStart(2, \0\)
  const mm = (dt.getMinutes() + \\).padStart(2, \0\)
  const ss = (dt.getSeconds() + \\).padStart(2, \0\)
  //时间格式年月日、时分秒
  return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
})

后面需要的时候,直接使用 dateFormat 即可
<p>{{time | dateFormat}}</p>


方式三
HTML:

<p>{{timestampToTime(time)}}</p>


Js:

timestampToTime (time) {
// 时间戳为10位需1000,时间戳为13位的话不需乘1000
      var date = new Date(time 1000) 
      let y = date.getFullYear()
      let MM = date.getMonth() + 1
      MM = MM < 10 ? (\0\ + MM) : MM
      let d = date.getDate()
      d = d < 10 ? (\0\ + d) : d
      let h = date.getHours()
      h = h < 10 ? (\0\ + h) : h
      let m = date.getMinutes()
      m = m < 10 ? (\0\ + m) : m
      let s = date.getSeconds()
      s = s < 10 ? (\0\ + s) : s
      return y + \年\ + MM + \月\ + d + \日\
}

打赏