Date.parse()的兼容问题

今天做项目遇到在ie,firefox上比较时间出错,但在chrome上正常,于是查找原因,发现是由Date.parse()的兼容性导致

  compareTime: function(strStartTime, strEndTime) {
        var objStartTime = Date.parse(strStartTime);
        var objEndTime = Date.parse(strEndTime);
        if (objStartTime <= objEndTime) {
            return true;
        }
        return false;
    }

parse():Date的静态方法,返回该时间距离1970/1/1的毫秒数

低版本IE 不支持Date.parse(‘2017-08-16 17:13:30‘)  支持Date.parse(‘2017-08-16 17:13:30‘)

火狐  不支持Date.parse(‘foot 2017‘),此时返回NAN 可以用isNaN()来检测

Chrome 会将Date.parse(‘foot 2017‘)解析成Date.parse(‘ 2005‘)

最终解决方式

compareTime: function(strStartTime, strEndTime) {
        strStartTime = strStartTime.replace(/-/g, "/");
        strEndTime = strEndTime.replace(/-/g, "/");
        var objStartTime = Date.parse(strStartTime);
        var objEndTime = Date.parse(strEndTime);
        if (objStartTime <= objEndTime) {
            return true;
        }
        return false;
    }
 
时间: 2024-07-29 13:30:17

Date.parse()的兼容问题的相关文章

Date.parse函数的兼容问题

因为要用Date.parse函数解析一个日期时间的字符串,在谷歌浏览器中解析成功,可是IE.火狐中却不行. 不知何故,firefox对于类似"2010-12-20 15:55:00"这种时间的转换格式不感冒,返回Nan,查了查资料,把"-"替换为"/"就可以了. 编了一个这样的函数,解决了这个问题. var dateparse_ie = function(abc){ //2014/4/16 08:58:57 return Date.parse(a

Date.parse()转化日期为时间戳,ios与Android兼容写法

把固定格式日期转化为时间戳: //格式化当地日期 new Date('2017-11-11 0:0:0') //结果为:Sat Nov 11 2017 00:00:00 GMT+0800 (中国标准时间) //日期转化为当地时间戳 Date.parse(new Date('2017-11-11 0:0:0')) //结果为:1510329600000 <font color="Red">//但是在ios系统下不能解析转化</font> 兼容写法: //ios下写

JavaScript Date.parse()详解

Date.parse() 函数用于分析一个包含日期的字符串,并返回该日期与 1970 年 1 月 1 日午夜之间相差的毫秒数. 语法 Date.parse( dateString ) 参数 参数 描述 dateString String类型 一个表示日期的字符串. 返回值 Date.parse() 函数的返回值为Number类型,返回该字符串所表示的日期与 1970 年 1 月 1 日午夜之间相差的毫秒数. 下面这些规则控制着parse()方法所能成功分析的字符串: 短日期可使用/日期分隔符,但

【java】Date与String之间的转换:java.text.SimpleDateFormat、public Date parse(String source) throws ParseException和public final String format(Date date)

1 package 日期日历类; 2 3 import java.text.ParseException; 4 import java.text.SimpleDateFormat; 5 import java.util.Date; 6 7 public class TestDate { 8 public static void main(String[] args) { 9 Date date=new java.util.Date(); 10 System.out.println(date);/

JavaScript Date.parse() 函数详解

Date.parse()函数用于分析一个包含日期的字符串,并返回该日期与 1970 年 1 月 1 日午夜之间相差的毫秒数. 该函数属于Date对象,所有主流浏览器均支持该函数. 语法 静态函数 Date.parse()的语法如下: Date.parse( dateString ) 参数  参数 描述   dateString  String类型一个表示日期的字符串. 返回值 Date.parse()函数的返回值为Number类型,返回该字符串所表示的日期与 1970 年 1 月 1 日午夜之间

IE下Date 日期不兼容问题

ie9+, chrome firefox opera下 string到Date 使用 new  Date("2014-06-01"); 都是ok的. 但在ie7, ie8下 返回NaN 用下面方法解决: function parseISO8601(dateStringInRange) { var isoExp = /^\s*(\d{4})-(\d\d)-(\d\d)\s*$/, date = new Date(NaN), month, parts = isoExp.exec(dateS

Date.parse的兼容性问题

今天写代码发现 viewValue = "2014-04-04 23:33:34" f = new Date(viewValue).getTime(); 在谷歌上可以正确解析,而在ie与edge上缺解析不了,经查询是兼容性问题,只要把"-"替换为"/"就可以解决,如下 f = new Date(Date.parse(viewValue.replace(/-/g,"/"))).getTime();

Date.parse和new Date(str)的兼容性问题

Date.parse和new Date(str)的兼容性问题 Date '2015-05-04'是无法被各个浏览器中,使用new Date(str)来正确生成日期对象的. 正确的用法是'2015/05/05'.

Date.parse

JavaScript: Date.parse(),一个参数,参数类型是 JavaScript 中的 Date 类型. 返回值 : 得到一个 Unix 时间戳,比如说,1470993235000,这种东西. 注意 : 我们知道,最后三位是毫秒数,但是,使用Date.parse得到的时间戳,最后三位永远是 000 .也就是说,Date.parse 只能精确到 秒级, 而不能精确到 毫秒.