问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

vue判断当前时间是否是当月的前十天

发布网友 发布时间:2022-03-27 12:52

我来回答

1个回答

热心网友 时间:2022-03-27 14:21

根据一个时间戳,然后来显示对应的时间段。如果为今天,则显示对应的time,如果为昨天,则显示为昨天,如果为前天,则显示为前天。剩下的显示为对应的日期需求定义好了,然后开始实现
首先,是把时间戳转换为对应的时间格式,js提供了原生的获取对应年、月、日等格式的方法,但是不够灵活,这里提供了一个网上找的比较灵活获取固定格式的函数。const formatDate = (date, fmt) => {undefined
date = new Date(date);
if (typeof (fmt) === "undefined") {undefined
fmt = "yyyy-MM-dd HH:mm:ss";}
if (/(y+)/.test(fmt)) {undefined
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))}
let o = {undefined
'Y': date.getFullYear(),
'M+': date.getMonth() + 1,
'd+': date.getDate(),
'H+': date.getHours(),
'm+': date.getMinutes(),
's+': date.getSeconds()}
for (let k in o) {undefined
if (new RegExp(`(${k})`).test(fmt)) {undefined
let str = o[k] + ''
fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? str : ('00' + str).substr(str.length));}
}
return fmt
}
使用这个函数,需要提供一个时间戳和一个日期格式。
// `+new Date()` 为获取当前时间戳的简写形式
// `yyyy-MM-dd HH:mm:ss`为想要获取的日期格式
formatDate(+new Date(), 'yyyy-MM-dd HH:mm:ss') // 2019-12-18 20:29:31
接下来是使用过滤器来对时间戳进行过滤。vue提供了过滤器,可以定义全局过滤器和本地过滤器,我们定义一个本地过滤器
// common.js
// 这里使用模块化,把过滤器函数定义在外部js文件内
const formatDate ......
export { formatDate }
// index.vue
import { formatDate } from 'common'
export default {undefined
data () {undefined
return {undefine
dtime: 1576673222857

}
},
methods: {},
created() {},
filters: {undefined
formateDate(data, fmt) {undefined
return formatDate(data, fmt)
}
}
}
定义好了过滤器,就可以在页面中使用了
// index.vue
{undefined{ time | formateDate('MM-dd') }}
使用|(管道符)来对时间戳进行过滤,管道符左侧为过滤器的第一个参数,第二个参数为过滤的格式。定义好之后就会根据格式显示对应的时间格式了。
接下来最后一步就是对比今天的日期,来显示对应的时间(昨天,前天)
这里使用vue的if else来判断应该显示哪种日期格式。
{undefined{ time | formateDate('HH:mm') }}
// 这里把时间戳转换为`日`,然后跟当前的`日`进行比较,如果相等,则说明是今天的时间戳,则显示`time`

{undefined{ time | formateDate('HH:mm') }}
// 这里把**当前**的时间戳 `-1`,说明是昨天。比如说今天是18日,`-1`之后就是17,如果`time`转换后 与 17 相等,说明应该显示为`昨天`。
{undefined{ time | formateDate('HH:mm') }}
// `-2`为`前天`
{undefined{ time | formateDate('MM-dd') }
// 否则显示为对应的日期
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
梦见水猴,俗称水鬼。是好是坏 驱虫药多久吃一次 什么情况需要吃打虫药 我的微信公众号太久没有更新被冻结了,怎么样才能注销重新 三星note3画笔画的作品(扩展名SPD)怎么样下载到电脑?怎样转换成JPG格式... 火灾甲乙丙丁类怎么分 什么叫甲类、乙类、丙类和丁类液体 小分子化合物库选哪家放心? 怪物猎人世界肉块交货方法介绍介绍_怪物猎人世界肉块交货方法介绍是什么... 怪物猎人世界肉块获得方法介绍介绍_怪物猎人世界肉块获得方法介绍是什么... 开心消消消赚钱版福利 在vue文件中写个获取本地时间的代码,谢谢大佬们了,百度了好久,还是没搞出来 vue什么时候需要用自定义指令 华为荣耀9x有256g的吗,支持nfc吗 gov.cn 这种域名注册要提交什么资料啊 什么是域名?什么网站名?什么是URL 政务机构域名注册时网站名称怎么填 政府的域名预定是 域名后缀为.gov的就是美国政府机构是吗 有哪些机构域名 网站域名有哪几种? 政府机关,商业组织,军事部门的域名是什么 在internet域名系统的顶级域名中,政府机构用什么表示? 什么是.gov.cn域名?.gov.cn有什么优势? 解释下com/cn/net/gov/等后缀名,分别表示什么? 政府部门官方的网址后辍用com还是用cn?有什么区别? 我国因特网域名体系的二级类别域名规定,“教育机构”和政府部门的代码分别是什么 ,cn ,net gov.cn三个后缀的区别? 根据Internet的域名代码规定,域名中这些都代表什么网站? 在域名中什么表示政府网站的域名 政府部门域名代码 小米运动蓝牙耳机怎么配对? 红米10X可以连接小米真无线蓝牙耳机Air2SE吗 红米手机怎么链接不上小米蓝牙耳机了? 小米有线蓝牙耳机如何配对 怎么我的红米手机连接不上小米蓝牙耳机啊! 拼多多类目id不存在怎么回事 荣耀play和荣耀10有什么区别 华为荣耀10和荣耀PLAY有什么区别 买哪个好 荣耀10和荣耀play的区别 荣耀10和荣耀play对比 荣耀play手机和荣耀10有什么区别 荣耀play手机和荣耀10的区别 荣耀play和荣耀10的区别 荣耀play跟荣耀10有什么不一样吗 荣耀10和play有什么区别 荣耀10和荣耀Play,谁更具有性价比 荣耀play和荣耀10挑哪个 荣耀paly 荣耀10区别 荣耀10和荣耀play选择哪个 荣耀play 和荣耀10哪个好