问题描述
今天给网站增加统计功能,其中一个功能为网站运行时间:
此功能通过当前时间和建站时间算差后计算网站运行时间为n年n天n时n分n秒,代码写完后测试浏览器显示效果时发现,非IE浏览器内核均正常显示,IE浏览器下显示效果的时候发现结果显示为:undefined年undefined天undefined时undefined分undefined秒
经过排查,发现在IE11下,new Date("2017-09-01 15:16:16")返回undefined。
解决问题
方法一:自定义方法
自定义一个NewDate方法:
function NewDate(str){ if(!str){ return 0; } arr=str.split(" "); d=arr[0].split("-"); t=arr[1].split(":"); var date = new Date(); date.setUTCFullYear(d[0], d[1] - 1, d[2]); date.setUTCHours(t[0], t[1], t[2], 0); return date; }
方法二:通过Date.parse()方法
‘ 2017-09-01 15:16:16‘是无法被各个浏览器中,使用new Date(str)来正确生成日期对象的。 正确的用法是‘ 2017/09/01 15:16:16‘。
基于‘/‘格式的日期字符串,才是被各个浏览器所广泛支持的,‘-’连接的日期字符串,则是只在chrome下可以正常工作。
var timestart = new Date(Date.parse(‘2017-09-01 15:16:16‘.replace(/-/g,"/")))
参照:https://blog.csdn.net/wqiancangq/article/details/52484806
原文地址:https://www.cnblogs.com/xianfengzhike/p/9694665.html
时间: 2024-10-11 21:43:36