把以上代码写进main.js 中 在页面上调用过滤器

- 发布:2020-11-20 17:51
- 更新:2020-11-20 17:51
- 阅读:661
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 7
HBuilderX类型: 正式
HBuilderX版本号: 2.9.10
手机系统: Android
手机系统版本号: Android 11
手机厂商: 小米
手机机型: 10
页面类型: vue
打包方式: 云端
项目创建方式: HBuilderX
操作步骤:
预期结果:
按格式要求正常显示中文部分
按格式要求正常显示中文部分
实际结果:
过滤后显示则是中文部分变成乱码菱形然后中间带问号
过滤后显示则是中文部分变成乱码菱形然后中间带问号
bug描述:
Vue.filter("timeFFormat", (value) => {
// 如果是七天内 只需要给出星期几, 如果是当天给具体时间+AM or PM 如果超过7天就给具体的时间
// 如果时间在昨天 86400000
let i = new Date(value).getTime(); // 对话中的时间戳;
let w = new Date(value).getDay(); // 对话中的星期几;
let t = new Date().getFullYear() + '-' + new Date().getMonth() + '-' + new Date().getDate(); //今天的日期 例: 2020-05-20
let today_zero = new Date(new Date(t).getTime() - 28800000).getTime(); //今天的零点 timestamp; 减去的时间因为是CST时间+8小时
let tomorrow = new Date(new Date(t).getTime() + 57600000).getTime(); //今天的11.59分的 timestamp;
let week = new Date(new Date(t).getTime() - 3600000 * 168); //七天前的时间
let l = new Date(new Date(t).getTime() - 86400000 - 28800000).getTime(); //昨天的零点
let o = new Date(value)
if (i >= today_zero && i < tomorrow) { // 在今天内
let am = new Date(new Date(t).getTime() - 28800000 + 1800000);
if (i < am) {
return '今天' + ' ' + new Date(value).getHours() + ':' + new Date(value).getMinutes() + ':'+ new Date(value).getSeconds() + ' ' + 'AM'
} else {
return '今天' + ' ' + new Date(value).getHours() + ':' + new Date(value).getMinutes() + ':' +new Date(value).getSeconds() + ' ' + 'PM'
}
} else if (l < i && i < today_zero) {
return '昨日' + ' ' + new Date(value).getHours() + ':' + new Date(value).getMinutes() + ':'+ new Date(value).getSeconds()
} else if (o > week) { //在一周内 //
switch (w) {
case 0:
return '星期日' + " " + new Date(value).getHours() + ':' + new Date(value).getMinutes() + ':'+ new Date(value).getSeconds()
break;
case 1:
return '星期一' + " " + new Date(value).getHours() + ':' + new Date(value).getMinutes() + ':'+ new Date(value).getSeconds()
break;
case 2:
return '星期二' + " " + new Date(value).getHours() + ':' + new Date(value).getMinutes() + ':' +new Date(value).getSeconds()
break;
case 3:
return '星期三' + " " + new Date(value).getHours() + ':' + new Date(value).getMinutes() + ':'+ new Date(value).getSeconds()
break;
case 4:
return '星期四' + " " + new Date(value).getHours() + ':' + new Date(value).getMinutes() + ':' +new Date(value).getSeconds()
break;
case 5:
return '星期五' + " " + new Date(value).getHours() + ':' + new Date(value).getMinutes() + ':' +new Date(value).getSeconds()
break;
case 6:
return '星期六' + " " + new Date(value).getHours() + ':' + new Date(value).getMinutes() + ':' +new Date(value).getSeconds()
break;
}
} else {
return new Date().getFullYear() + '-' + new Date().getMonth() + '-' + new Date().getDate() + ' ' + new Date(value).getHours() + ':' + new Date(value).getMinutes() + ':' +new Date(value).getSeconds();
}
});
编码如上, 过滤后显示则是中文部分变成乱码菱形然后中间带问号
0 个回复