数据库传时间格式出错(已解决)

一、我遇到的问题

我在做毕业设计时遇到的这个问题,时间在数据库内显示的格式还是正确的(yyyy-mm-dd hh:mm:ss),如图

在这里插入图片描述
而到了前端却变成了:
在这里插入图片描述
这可真是一个难题啊!

二、解决的办法

我在网上搜索前辈遇到这种问题的解决办法,有好的说法,我一一亲自尝试,还是没有用,还有说是时区的问题,说什么加8就可以了,没用!!!

解决办法一:
在连接数据库的地方添加一行dateString:true,让数据带格式传到前端。
在这里插入图片描述
添加后:
在这里插入图片描述
这就正常了嘛!

解决办法二:
通常我们在数据库里设置时间的类型是 datetime,在这里我们可以将时间的数据类型修改为bigint:
在这里插入图片描述
在数据库显示为:
在这里插入图片描述
这里大家可能会有疑问,这还是时间吗?没错,是的,只是以毫秒的形式显示,在前端显示需要进行一些计算:

 if (value && value.data && value.data.length) {
 
         let i = value.data.length - 1;
          for (let item of value.data) {
            const d = new Date(Number(item.time));
            this.xAxis[i] = d.getHours() > 9 ? d.getHours() : '0' + d.getHours();
            this.xAxis[i] += ":" + (d.getMinutes() > 9 ? d.getMinutes() : '0' + d.getMinutes());
            this.xAxis[i] += ":" + (d.getSeconds() > 9 ? d.getSeconds() : '0' + d.getSeconds());
            console.log(d);
       
            i--;
          }

结果:
在这里插入图片描述
如果想要yyyy-mm-dd hh:mm:ss格式,只需要toLocaleString()一下就可以了。

到这就全部结束了,终于把问题解决了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值