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();

  • 相关阅读:
    seajs快速了解
    lazyload.js详解
    iScroll-js—“smooth scrolling for the web”
    Backbone学习笔记一Backbone中的MVC
    JMH基准测试框架
    idea 下运行安卓项目
    安卓
    C++
    看完
    四叉树的js实现
  • 原文地址:https://www.cnblogs.com/bber/p/9683310.html
Copyright © 2011-2022 走看看