欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

IOS系统中使用new Date()报错valid Date

程序员文章站 2022-06-13 17:34:42
场景重现:最近公司开发移动端添加直播,设置开播及下播时间,使用微信提供的日期,时间选择器,返回的value为 ‘2020-01-01’ 及 ‘10:00’ 格式。由于接口需要上传时间戳,因此使用下面函数生成。getTime(dateString) { var date = new Date(dateString); return Math.round(date.getTime() / 1000);// 生成十位数时间戳返回},开开心心交完需求后,测试说苹果手机一直出问题,安卓...

场景重现:
最近公司开发移动端添加直播,设置开播及下播时间,使用微信提供的日期,时间选择器,返回的value为 ‘2020-01-01’ 及 ‘10:00’ 格式。由于接口需要上传时间戳,因此使用下面函数生成。

getTime(dateString) {
    var date = new Date(dateString);

    return Math.round(date.getTime() / 1000);		// 生成十位数时间戳返回
},

开开心心交完需求后,测试说苹果手机一直出问题,安卓却没有问题,前端新人抓耳挠腮。多重检测发现是这个函数出现了问题。苹果手机返回的数据是NaN。打印了date发现苹果返回 valid Date 。查了资料才发现苹果new Date()函数不支持‘2020-01-01’格式日期。需为‘2020/01/01’格式。因此修改函数为:

getTime(dateString) {
 	// 苹果手机new Date()不支持‘2020-01-01’格式,需转换为‘2020/01/01’
	dateString = dateString.toString().replace(/-/g, "/");     
	var date = new Date(dateString);

	return Math.round(date.getTime() / 1000);
},

吐槽,既然ios系统不支持 ‘-’ 的时间格式,选择器怎么不返回 ‘/’ 格式。┐(‘~`;)┌

本文地址:https://blog.csdn.net/chen_x_w/article/details/107388755