new Date() 在Safari下的 Invalid Date问题
问题复现
var timeStr = '2018-11-11 00:00:00'; var time = new Date(timeStr); // error: Invalid Date ...
在safari浏览器下,time为Invalid Date, 导致后面代码执行错误;
其他浏览器诸如chrome,firfox,ie运行正常,time为:Sun Nov 11 2018 00:00:00 GMT+0800 (中国标准时间)。
问题原因
在safari浏览器下,new Date() 无法识别像 YYYY-MM-DD HH:mm:ss、YYYY.MM.DD HH:mm:ss这样的格式,只能识别YYYY/MM/DD HH:mm:ss、YYYY-MM-DDTHH:mm:ss这样的格式,但是chrome,firfox,ie都做了很好的拓展,都能识别。
new Date('2018-11-11 00:00:00') /* chrome: Sun Nov 11 2018 00:00:00 GMT+0800 (中国标准时间) (正常) safari: Invalid Date */ new Date('2018.11.11 00:00:00') /* chrome: 正常 safari: Invalid Date */ new Date('2018/11/11 00:00:00') /* chrome: 正常 safari: 正常 */ new Date('2018-11-11T00:00:00') /* chrome: 正常 safari: 正常 */
解决方案
- 直接转换时间字符串中的'-'为'/'。
var timeStr = '2018-11-11 00:00:00'; var date = new Date(Date.parse(timeStr.replace(/-/g, '/')));
- 基于Date创建自己的Date类。
// es6环境 class UnitDate { constructor (date) { let { userAgent } = window.navigator; if (userAgent.includes('Safari')) { if (typeof date === 'string') { date = date.replace(/-/g, '/'); return new Date(date); } return new Date(date); } return new Date(date); } } var date = new UnitDate('2018-11-11 00:00:00'); //正常 var date_2 = new UnitDate('2018.11.11 00:00:00'); //正常 ...
![](/img/my/wx.png)
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
vue2中引用 better-scroll的方法
文章主要介绍了vue2中引用better-scroll和使用 better-scroll的方法,使用时有三个要点及注意事项在文中给大家详细介绍 ,需要的朋友可以参考下 使用时有三个要点: 一:html部分 <div class="example" ref="divScroll"> <div> <p>内容1</p> <p>内容2</p> <ul> <li>list1</li> <li>list2</li> <ul> </div> </div> 1.最外层加ref,让better-scroll通过ref来获取整个div; 2.紧跟一个div,不用加任何样式或class, 最终可以滑动的部分就是这个div,这个div必须是 加了ref 的div 的 直接子元素。 在这个div里面就可以放置希望滑动的内容了。 二: css部分 .example width: 100% position: absolute top: 174px ...
- 下一篇
Koa项目搭建过程详细记录
Java中的Spring MVC加MyBatis基本上已成为Java Web的标配。Node JS上对应的有Koa、Express、Mongoose、Sequelize等。Koa一定程度上可以说是Express的升级版。许多Node JS项目已开始使用非关系型数据库(MongoDB)。Sequelize对非关系型数据库(MSSQL、MYSQL、SQLLite)做了支持。 Koa项目构建 cnpm install -g koa-generator // 这里一定要用koa2 koa2 /foo Koa常用中间件介绍 koa-generator生成的应用已经包含常用中间件了,这里仅说它里面没有用到的。 koa-less app.use(require('koa-less')(__dirname + '/public')) 必须在static前use,不然会无效。 stylesheets文件夹下新建styles.less,并引入所有模块化less文件。 @import 'foo.less'; @import 'bar.less'; 这样所有的样式会被编译成一个style.css。在模板(pu...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,CentOS7官方镜像安装Oracle11G
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS关闭SELinux安全模块
- CentOS8编译安装MySQL8.0.19
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题