今天处理了一下时间格式,虽然每天都处理但是都是使用Moment.js 来进行处理
下载安装 不是有手就行,如果不会的话,那就按照官网的一步步的安装,然后看人家是怎么使用的,我就不复制粘贴了。
然后发现这不对呀,平时给的都是 刚刚好,今天怎么给的是个世界时间烦死了
然后可以用Moment.js 来进行一个处理,然后把值传进去 然后得到的就是中国的北京时间了,
let oldDate = 后台时间
let newDate = moment(oldDate).format('YYYY-MM-DD HH:mm:ss')
这样就得到了一个现在的时间。
那有人说了安装太麻烦了,还造成项目比较冗余,也就写个公共函数直接解决了,我想说你牛逼,然后在全局的公共函数里面定义一个处理时间的函数当我们需要的时候引入即可,或者把它挂载到vue.prototype的原型上然后每次都不用import 引入了。
// 转换时间格式
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( 后台时间 , 'yyyy-MM-dd')
一个简单的转换时间函数,然后我们把这个函数使用上 使用计算属性也可以 ,使用过滤 filters 也可以, 目的是把当前后台返回的时间转换成本地时间。
当然也可以写成全局的过滤器,
Vue.filter('format', function (time, format) {
内容: xxxxxxxxxxxx
})
使用的话和普通一样 {{ 后台时间 | format('yyyy-MM-dd HH:mm:ss') }}
然后得到的就是现在时间比国际时间差8个小时。
上面的只是一种方法 也可以使用计算属性,也可以使用watch监听 都可以,看自己个人爱好,黑毛白猫能抓住老鼠的就是好猫。
日期的判断
今天有一个日期选择 但是不可以选中比今天往后的天数,然后element-ui 里面有一个只能选中今天或者今天之前的,但是我感觉样式有点丑就没有使用,然后我就进行了一下判断
let activeDate = new Date (当前选中的时间)
let nowDate = new Date (moment().format('YYYY-MM-DD'))
activeDate.getTime()>nowDate.getTime() ? '选中的时间大':'当前的时间大'
这里面就进行一下判断看看当前时间大,还是选中的时间大,
原理是看两个返回的时间戳看看谁大。
上面的比较是其一 还有截取把时间都截取出来一一对比,然后得出来的时间看看谁的比较大也是一种方案。
当我实现了那个只能查询当天的和之前的,我提出设想我获取的是本地电脑时间,当我把自己本地的时间修改了,不就可以查询之后的时候的数据了,虽然没有,说干就干,经过我的修改果然可以查询,我感觉这个是一个小bug,然后我就问了一下组长,他说你虽然修改了,但是也没啥人修改,因为获取不到数据,你设置之后的数据也没啥用,那我突发奇想,那我打卡的时候把时间修改了,然后我就可以提前下班了????
事实证明我在想P吃,嘿嘿。
人家请求的时间都是和后台获取的时间,即使你修改了本地电脑的时间也是不管用的,我太菜了。。。