js 获取当前时间、时间格式转换

在获取当前时间之前我们先来了解 vue 的两个生命周期函数

created:在模板渲染成html前调用,即通常初始化某些属性值,然后再渲染成视图。(请求接口)

mounted:在模板渲染成html后调用,通常是初始化页面完成后,再对html的dom节点进行一些需要的操作。

所以如果我们的需求是要实时更新当前的时间,代码写在这个 mounted 函数中,实现每秒刷新时间

	created() {
		this.$nextTick(() => {
			this.initialize(); //请求接口
		})
	},
	mounted() {
		
		this.timer = setInterval(() => {
			//获取时间对象
			var dd = new Date();
			//获取年、月、日、时、分、秒
			//月份要加 1
			//月、日、时、分、秒、用三目运算法判断是否小于等于9,是则在数字前面自动补0,否则不处理
			var y = String(dd.getFullYear());
			var m = String(dd.getMonth() + 1 <= 9 ? '0' + (dd.getMonth() + 1) : (dd.getMonth() + 1));
			var d = String(dd.getDate() <= 9 ? '0' + dd.getDate() : dd.getDate());
			var h = String(dd.getHours() <= 9 ? "0" + dd.getHours() : dd.getHours());
			var i = String(dd.getMinutes() <= 9 ? '0' + dd.getMinutes() : dd.getMinutes());
			var s = String(dd.getSeconds() <= 9 ? '0' + dd.getSeconds() : dd.getSeconds());
			var wkday = dd.getDay();  //获取今天是星期几
			var time = y + "年" + m + "月" + d + "日" + "   " + h + ":" + i + ":" + s + "  " + "星期" + "日一二三四五六".charAt(wkday);
			console.log(time)
		}, 1000)
		
	},
	// 在Vue实例销毁前,清除我们的定时器
	beforeDestroy() {
		if (this.timer) {
			clearInterval(this.timer); 
		}
	},

如果你不想实时更新时间,只想显示当前时间,可以封装一个函数,获取时间的代码放进去,去掉setInterval()定时器,然后拼接完成字符串后 return 返回出去,调用这个函数就可以返回当前时间

时间格式转换

这是后台接口返回的数据格式 

将日期转换为指定的格式:比如转换成 年月日时分秒 这种格式:yyyy-MM-dd hh:mm:ss 或者 yyyy-MM-dd

可以为Date原型添加如下的方法:

Date.prototype.format = function(fmt) { 
     var o = { 
        "M+" : this.getMonth()+1,                 //月份 
        "d+" : this.getDate(),                    //日 
        "h+" : this.getHours(),                   //小时 
        "m+" : this.getMinutes(),                 //分 
        "s+" : this.getSeconds(),                 //秒 
        "q+" : Math.floor((this.getMonth()+3)/3), //季度 
        "S"  : this.getMilliseconds()             //毫秒 
    }; 
    if(/(y+)/.test(fmt)) {
            fmt=fmt.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); 
    }
     for(var k in o) {
        if(new RegExp("("+ k +")").test(fmt)){
             fmt = fmt.replace(RegExp.$1, (RegExp.$1.length==1) ? (o[k]) : (("00"+ o[k]).substr((""+ o[k]).length)));
         }
     }
    return fmt; 
}        

我们在拿到数据接口后,进行循环遍历,调用刚才我们为Date原型添加的format()方法,参数为你想要的时间格式,最后赋值给数组中指定的字段,更新视图

newRptdatas.suppDelayTable.map(v=>{

            var oldTime = (new Date(v.date)).getTime();

            //var curTime = new Date(oldTime).format("yyyy-MM-dd hh:mm:ss");

             var curTime = new Date(oldTime).format("yyyy-MM-dd");

             v.date = curTime;

        })

 

 将 "时间戳" 转换为 "年月日" 的格式

可以将Date( )括号中的参数改为后台接口请求到的时间戳,这里只是做个例子

        var da = 1602233166999;
        da = new Date(da);
        var year = da.getFullYear()+'年';
        var month = da.getMonth()+1+'月';
        var date = da.getDate()+'日';
        var time = year+""+month+""+date;
        console.log(time);

对时间格式进行修改 将 - 横杆改为 / 斜杆  去掉20 保留当前的年份,去掉时间的毫秒

时间为  add_time: "2022-07-08 16:19:49"

res.data 是后台返回的数组

res.data.forEach(v=>{
              let add_time = v.add_time.replace(/-/g,"/")
              v.add_time = add_time.substring(2,16)
          })

效果

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值