微信小程序(Android / IOS)是戳转换问题
1.定义时间转换的函数
function formatNumber(n){
n = n.toString()
return n[1] ? n : '0' + n;
}
//获取当前时间 拼接符号为 -
function formatData(){
var time = new Date();
var y = time.getFullYear();
var m = time.getMonth() + 1;
var d = time.getDate();
var h = time.getHours();
var mm = time.getMinutes();
var s = time.getSeconds();
return y + '-' + formatNumber(m) + '-' + formatNumber(d) + ' ' + formatNumber(h) + ':' + formatNumber(mm) + ':' + formatNumber(s);
}
使用
onLoad() {
var time = formatData();
console.log("当前时间:",time); // 2022-03-04 09:06:47
var timestamp = new Date(time).getTime()
console.log("当前时间转换为时间戳:",timestamp); //1646356007000
}
运行效果(Android)
运行效果(IOS)
IOS需要在微信开发者工具预览模式下运行时此效果(预览比真机调试更加接近使用场景)
造成原因
因为时间格式是以 - 符号连接的,而ios解析时间的格式不支持此符号,故造成NaN的效果
解决方案
- 转换时间以 / 形式连接
return y + '/' + formatNumber(m) + '/' + formatNumber(d) + ' ' + formatNumber(h) + ':' + formatNumber(mm) + ':' + formatNumber(s);
- 若是固定的时间格式可使用replace方法替换字符
var newTime = time.replace(/-/g, '/'); // 2022/03/04 09:06:47