1、兼容问题:IOS手机不支持“2021-12-30 22:22:30”里面带横杠“-”的时间格式,它只支持“2021/12/30 22:22:30”带斜杠“/”的时间格式,安卓手机则两种时间格式都兼容
2、解决方法:将横杠“-”替换成“/”即可,
var oldTime = "2021-12-30 22:22:30";
var newTime = oldTime.replace(/\-/g,'/');
console.log(newTime);//"2021/12/30 22:22:30"
3、拓展
① 若需要将以上格式的时间转为毫秒数,则
var hmTime = new Date(newTime);
var resultTime = hmTime.getTime();
console.log(resultTime);//输出对应毫秒数
② 若需要将毫秒数时间转为天-时-分-秒
// 时间倒计时
setOverTime(overTime){
setInterval(() => {
let isOverTime = this.getOverTime(overTime);
this.countdown=isOverTime;//这个countdown就是得到的“天时分秒”结果
},1000)
},
// 格式化倒计时
getOverTime(timeString){
// 到期日期的时间戳
let ts1 = Date.parse(timeString);
// 现在的时间戳
let ts2 = Date.parse( new Date() );
// 时间戳间隔
let interval = ts1 - ts2;
// 将时间段转换为天时分秒
let obtain = this.fortime(interval)
return obtain
},
// 将时间戳转换为天时分秒
fortime(sj) {
var days = parseInt((sj % (1000 * 60 * 60 * 24 * 365)) / (1000 * 60 * 60 * 24));
var hours = parseInt((sj % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
var minutes = parseInt((sj % (1000 * 60 * 60)) / (1000 * 60));
var seconds = (sj % (1000 * 60)) / 1000;
days = days < 10 ? ('0' + days) : days;
hours = hours < 10 ? ('0' + hours) : hours;
minutes = minutes < 10 ? ('0' + minutes) : minutes;
seconds = seconds < 10 && seconds >= 1 ? ('0' + seconds) : seconds;
return days + "天" + hours + ":" + minutes + ":" + seconds;
},
然后在需要的地方调用setOverTime(resultTime);