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);

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐