zoukankan      html  css  js  c++  java
  • 使用new Date() 在ios、及不同浏览器上的适配

    以前new Date()都是放心大胆用的,结果今天在项目上遇到一个在ios上不兼容的问题....

    var min_date = '2018-9-1';

    var min_timestamp = new Date(min_date).getTime();  //在ios下会报Invalid Date错误

    .....................

    var min_date =  '2018/9';

    var min_timestamp = new Date(min_date).getTime();  //在ios下也会报Invalid Date错误的

    低版本的Safari解释new Date('2013-10-21')这个对象不一样,在IOS5中的Safari不支持这种写法。

    经过相关查询与试验发现字符串的格式同样不被某些浏览器识别,导致出现 Invalid Date、NaN-NaN

    浏览器都能识别的格式:

    var d = new Date(2011, 01, 07); // yyyy, mm-1, dd

    var d = new Date(2011, 01, 07, 11, 05, 00); // yyyy, mm-1, dd, hh, mm, ss

    var d = new Date("02/07/2011"); // "mm/dd/yyyy"

    var d = new Date("02/07/2011 11:05:00"); // "mm/dd/yyyy hh:mm:ss"

    var d = new Date(1297076700000); // 毫秒

    var d = new Date("Mon Feb 07 2011 11:05:00 GMT"); // ""Day Mon dd yyyy hh:mm:ss GMT/UT

    最后解决:

    做了正则匹配,用/格式的日期是所有浏览器都识配的,在只有月份的时候拼上了‘/1’

    var min_timestamp = new Date(min_date.replace(/-/g,'/')).getTime();

  • 相关阅读:
    Vista修改网卡MAC地址防御ARP
    MySQL
    FirstWebSite
    Java
    python
    编码风格 标识符命名
    计算机体系结构基础
    编码风格 indent工具
    Linux发布web app 到Tomcat
    编码风格 函数
  • 原文地址:https://www.cnblogs.com/bber/p/9683310.html
Copyright © 2011-2022 走看看