new Date兼容iOS和Android
new Date兼容iOS和Android
后端接口返回日期格式:YYYY-MM-DD HH:mm:ss
前端直接拿过来
const date = new Date('2020-11-13 11:28:30')
const year = date.getFullYear(); // => NaN
发现报错了 获取到的值是 NaN
原因:
- Android端是兼容以下两种日期格式的(
YYYY-MM-dd HH:mm:ss
、YYYY/MM/dd HH:mm:ss
), 所以在Android上允许以上代码是没有问题的。 - iOS上只兼容(yyyy/MM/dd HH:mm:ss)格式 故需要把
YYYY-MM-dd HH:mm:ss
转换为`YYYY/MM/dd HH:mm:ss
解决方案:
const inputValue = '2020-11-13 11:28:30';
const str = inputValue.replace(/-/g, '/'); // 2020/11/13 11:28:30
const date = new Date(str)
// code ...
返回距 1970 年 1 月 1 日之间的毫秒数:(对比时间)
// 不兼容写法
new Date(date).getTime()
// 兼容写法
new Date(data.replace(/-/g,'/')).getTime()
另附:定制时间格式转化Date(兼容IOS)
/*** @param format 默认 YYYY-MM-DD HH:mm:ss* */
export const dateConvert = (time, format = "YYYY-MM-DD HH:mm:ss") => {const date = new Date(time);// 这里是为了解决 IOS/Safari 中new Date()的兼容问题 if (typeof time == "string") {const arr = time && time.split(/[\-\+ :T]/);if (arr && arr.length > 0) {date.setUTCFullYear(arr[0]);date.setUTCMonth(arr[1] - 1);date.setUTCDate(arr[2]);date.setUTCHours(arr[3]);date.setUTCMinutes(arr[4]);date.setUTCSeconds(arr[5]);}}const o = {"M+": date.getMonth() + 1, //月份 "d+": date.getDate(), //日 "D+": date.getDate(), //日 "h+": date.getHours(), //小时 "H+": date.getHours(), //小时 "m+": date.getMinutes(), //分 "s+": date.getSeconds(), //秒 "q+": Math.floor((date.getMonth() + 3) / 3), //季度 "S": date.getMilliseconds() //毫秒 };if (/(y+)|(Y+)/.test(format))format = format.replace(RegExp.$1 || RegExp.$2, (date.getFullYear() + "").substr(4 - (RegExp.$1.length || RegExp.$2.length)));for (const k in o)if (new RegExp("(" + k + ")").test(format))format = format.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));return format
}// 可以把上述函数放入Date.prototype里面,调用更方便。
new Date兼容iOS和Android相关推荐
- jquery 属性选择android,select设置text的值选中(兼容ios和Android)基于jquery
前一段时间改了一个bug,是因为select引起的.当时我没有仔细看,只是把bug改完了就完事了,今天来总结一下. 首先说option中我们通常会设置value的属性的,还有就是text值的,请参见下 ...
- 前端系列——与众不同的移动端底部固定栏 fixed、absolute 兼容 iOS 和 Android 方案
相信我,我分享的和你在其他博客上看到的终极方案是如此的与众不同! 做过移动端开发的同学,对底部DOM定位出现的各种奇葩情况已经深恶痛绝了吧,底部DOM设置不同的position,在Android和io ...
- 前端系列——与众不同的移动端底部固定栏 fixed、absolute 兼容 iOS 和 Android 方案...
相信我,我分享的和你在其他博客上看到的终极方案是如此的与众不同! 做过移动端开发的同学,对底部DOM定位出现的各种奇葩情况已经深恶痛绝了吧,底部DOM设置不同的position,在Android和io ...
- select设置text的值选中(兼容ios和Android)基于jquery
前一段时间改了一个bug,是因为select引起的.当时我没有仔细看,只是把bug改完了就完事了,今天来总结一下. 首先说option中我们通常会设置value的属性的,还有就是text值的,请参见下 ...
- 【h5移动端页面调起手机sms批量发送短信,兼容ios和android】
移动端h5页面调起手机发送短信功能,实现批量发送生日祝福模板,苹果和安卓的兼容写法不一样. 先判断是ios还是android,拼接的写法不一样 android是sms:188XXXXXXXX,134X ...
- 移动端实现swiper轮播的图片视频播放video,仿淘宝商品详情的视频播放(兼容ios和android)
前段时间项目里需要,实现仿淘宝图片视频切换的功能,在网上找了很久,根据网上所收集的信息,最后整合实现项目需求,这里兼容了ios和android,直接拿来用即可,这里是用来记录学习使用的,大家有什么问题 ...
- 打开页面默认弹出软键盘,同时兼容iOS和Android
// 示例1 open_soft_keyboard({input: "#username" }); // 示例2 open_soft_keyboard({input: 'input ...
- 兼容ios和android的ar,Android又落后 这几款AR游戏只能iOS玩
近日苹果正式推送iOS 11,很多AR应用也随之上线.iOS 11一个很重要的亮点就是AR增强现实,利用它用户可以实现很多前所未有的体验,比如将室内的环境与游戏融为一体:还能测量距离,想知道你喜欢的明 ...
- 兼容ios和android的ar,Android又落后一步 这几款AR游戏只能iOS 11玩
原标题:Android又落后一步 这几款AR游戏只能iOS 11玩 近日苹果正式推送iOS11,很多AR应用也随之上线.iOS11一个很重要的亮点就是AR增强现实,利用它用户可以实现很多前所未有的体验 ...
最新文章
- python programming training(一):最大回文子字符串
- libev的使用——结合Socket编程
- python变量存储 堆与栈内存内存_浅析JS中的堆内存与栈内存
- MySQL 复制夯住排查以及原理探讨
- Hbuilder----安装less插件(详细)
- javascript犀牛书_犀牛书作者:最该忘记的JavaScript特性
- Easytrader踩坑之旅(一)
- 查找子字符串----KMP算法深入剖析
- mysql 不认的字符串_mysql 判断字符串是否为其他字符串的子集
- JTable 学习一
- dijkstra + 优先队列(C++)
- linux e1000内核源码,linux下e1000网卡奇怪现象
- echarts 3D圆柱形图 实现简单 带图例完美显示隐藏
- 2022Mothercup建模比赛
- 【Python脚本】得王者金币,王者大佬快来带我飞
- 计算机仿真初审多长时间,普刊初审时间多久有回复
- photon 服务器操作系统,PhotonServer游戏服务器端教程
- 整理最全的“大数据”学习资源
- 【干货分享】前端面试知识点锦集01(HTML+CSS篇)—— 附答案
- eft join 是left outer join的区别