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:ssYYYY/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相关推荐

  1. jquery 属性选择android,select设置text的值选中(兼容ios和Android)基于jquery

    前一段时间改了一个bug,是因为select引起的.当时我没有仔细看,只是把bug改完了就完事了,今天来总结一下. 首先说option中我们通常会设置value的属性的,还有就是text值的,请参见下 ...

  2. 前端系列——与众不同的移动端底部固定栏 fixed、absolute 兼容 iOS 和 Android 方案

    相信我,我分享的和你在其他博客上看到的终极方案是如此的与众不同! 做过移动端开发的同学,对底部DOM定位出现的各种奇葩情况已经深恶痛绝了吧,底部DOM设置不同的position,在Android和io ...

  3. 前端系列——与众不同的移动端底部固定栏 fixed、absolute 兼容 iOS 和 Android 方案...

    相信我,我分享的和你在其他博客上看到的终极方案是如此的与众不同! 做过移动端开发的同学,对底部DOM定位出现的各种奇葩情况已经深恶痛绝了吧,底部DOM设置不同的position,在Android和io ...

  4. select设置text的值选中(兼容ios和Android)基于jquery

    前一段时间改了一个bug,是因为select引起的.当时我没有仔细看,只是把bug改完了就完事了,今天来总结一下. 首先说option中我们通常会设置value的属性的,还有就是text值的,请参见下 ...

  5. 【h5移动端页面调起手机sms批量发送短信,兼容ios和android】

    移动端h5页面调起手机发送短信功能,实现批量发送生日祝福模板,苹果和安卓的兼容写法不一样. 先判断是ios还是android,拼接的写法不一样 android是sms:188XXXXXXXX,134X ...

  6. 移动端实现swiper轮播的图片视频播放video,仿淘宝商品详情的视频播放(兼容ios和android)

    前段时间项目里需要,实现仿淘宝图片视频切换的功能,在网上找了很久,根据网上所收集的信息,最后整合实现项目需求,这里兼容了ios和android,直接拿来用即可,这里是用来记录学习使用的,大家有什么问题 ...

  7. 打开页面默认弹出软键盘,同时兼容iOS和Android

    // 示例1 open_soft_keyboard({input: "#username" }); // 示例2 open_soft_keyboard({input: 'input ...

  8. 兼容ios和android的ar,Android又落后 这几款AR游戏只能iOS玩

    近日苹果正式推送iOS 11,很多AR应用也随之上线.iOS 11一个很重要的亮点就是AR增强现实,利用它用户可以实现很多前所未有的体验,比如将室内的环境与游戏融为一体:还能测量距离,想知道你喜欢的明 ...

  9. 兼容ios和android的ar,Android又落后一步 这几款AR游戏只能iOS 11玩

    原标题:Android又落后一步 这几款AR游戏只能iOS 11玩 近日苹果正式推送iOS11,很多AR应用也随之上线.iOS11一个很重要的亮点就是AR增强现实,利用它用户可以实现很多前所未有的体验 ...

最新文章

  1. python programming training(一):最大回文子字符串
  2. libev的使用——结合Socket编程
  3. python变量存储 堆与栈内存内存_浅析JS中的堆内存与栈内存
  4. MySQL 复制夯住排查以及原理探讨
  5. Hbuilder----安装less插件(详细)
  6. javascript犀牛书_犀牛书作者:最该忘记的JavaScript特性
  7. Easytrader踩坑之旅(一)
  8. 查找子字符串----KMP算法深入剖析
  9. mysql 不认的字符串_mysql 判断字符串是否为其他字符串的子集
  10. JTable 学习一
  11. dijkstra + 优先队列(C++)
  12. linux e1000内核源码,linux下e1000网卡奇怪现象
  13. echarts 3D圆柱形图 实现简单 带图例完美显示隐藏
  14. 2022Mothercup建模比赛
  15. 【Python脚本】得王者金币,王者大佬快来带我飞
  16. 计算机仿真初审多长时间,普刊初审时间多久有回复
  17. photon 服务器操作系统,PhotonServer游戏服务器端教程
  18. 整理最全的“大数据”学习资源
  19. 【干货分享】前端面试知识点锦集01(HTML+CSS篇)—— 附答案
  20. eft join 是left outer join的区别

热门文章

  1. gabor 变换matlab,Gabor变换到底是什么鬼?
  2. 大数据文字游戏_移动的大数据指南:千字以内的文章传播率最高
  3. java mail张_javaMail操作QQ邮箱发送邮箱 Demo
  4. 谷歌ai人工智能叫什么_Google DeepMind在全球使用AI的10种方式
  5. 剑桥A1-C2单词表-01
  6. 如何在java中简单实现音乐播放
  7. Unity-音频播放
  8. python爬虫面试题集锦及答案
  9. 2017年总结2018年展望
  10. 深入理解 LWUIT 框架的 MVC