在vue中,从后台获取数据,如果不是sql语句(类似:select convert(char(10),GetDate(),120) as Date)获取的数据,在前台就会出现如下情况:
解决方法:
1. 使用自定义函数格式化时间数据:
(1)年月日:
var timearr = time.replace(" ", ":").replace(/\:/g, "-").split("-");
var timestr = timearr[0]+"年"+ Number(timearr[1])+ "月" + timearr[2]+"日";
(2)时分
var timearr = time.replace(" ", ":").replace(/\:/g, "-").split("-");
var timestr = ""+timearr[3]+ " :" + timearr[4]+" ";
完整时间截取的方法:
getPartTime(val){
// let ti = val.split(' ');
var timearr = val.replace(" ", ":").replace(/:/g, "-").split("-");
var timestr = ""+ Number(timearr[1])+ "月" + timearr[2]+"日";
// console.log(4444,val)
return timestr;
},
数据调用:
{{ item.buildingName }}
{{ item.buildingNo }}
{{ item.buildingAddress }}
{{ item.buildingArea }}
{{ item.longitude }}
{{ item.latitude }}
{{ item.floorCnt }}
{{ item.companyNumb }}
{{ item.buildingSteward }}
{{ getPartTime(item.buildingTime) }}
格式化后数据:
自定义函数方法的好处是任何地方都可以调用这个函数进行数据格式化。
2. 利用substring函数截取:
可以先使用console.log打印数据显示数据是否符合要求:
console.log(this.buildings[0].buildingTime.substring(0, 10))
完整截取代码如下:
GetEnterpriseData(1).then(response => {
this.enterprisedata = response.result
this.buildings = this.enterprisedata[0].buildings
// console.log(this.buildings[0].buildingTime.substring(0, 10))
for (let i = 0; i < 10; i += 1) {
this.buildings[i].buildingTime = this.buildings[i].buildingTime.substring(0, 10)
console.log(this.buildings[i].buildingTime)
}
// console.log('qqqq', this.enterprisedata)
})
或者:
{{ item.buildingSteward }}
{{ item.buildingTime.substring(0, 10) }}
截取后控制台打印数据:
3. 利用left函数截取
LEFT(string,length)函数
从字符串string中,从第一个字符开始,自左向右,截取长度为length的子串。
举个例子,string为 ‘ABCDEFG’,length为3,那么截取的子串就是’ABC’了。
4. 利用right函数截取
与上面函数类似,只是方向自右向左,例子同上,截取的子串就是’EFG’了。