js/typescript字符串转时间出错

我是在做混合开发的时候遇到的问题,就是一个字符串(如:2018-07-12)转时间Date类型,一般情况下直接new Date(2018-07-12)就行了,但是在苹果Safari浏览器和IE6中,这样子不行的

在搜索很多资料后解决了这一个问题,下面是代码

js版:

/**
   * 字符串转Date(兼容模式)
   * @param {string} timeStr  (2018-05-20,2018.05.20,2018/05/20)
   */
  stringTimeToDate(timeStr){
    var resDate;
    if(timeStr.indexOf("-")!=-1){
      var nyrArr=timeStr.split(' ')[0].split('-');
      var sfmArr=timeStr.split(' ')[1].split(':');
      resDate=new Date(nyrArr[0],nyrArr[1]-1,nyrArr[2],sfmArr[0],sfmArr[1],0,0);
    }
    if(timeStr.indexOf(".")!=-1){
      var nyrArr=timeStr.split(' ')[0].split('.');
      var sfmArr=timeStr.split(' ')[1].split(':');
      resDate=new Date(nyrArr[0],nyrArr[1]-1,nyrArr[2],sfmArr[0],sfmArr[1],0,0);
    }
    if(timeStr.indexOf("/")!=-1){
      var nyrArr=timeStr.split(' ')[0].split('/');
      var sfmArr=timeStr.split(' ')[1].split(':');
      resDate=new Date(nyrArr[0],nyrArr[1]-1,nyrArr[2],sfmArr[0],sfmArr[1],0,0);
    }
    return resDate;
  }

typescript版

/**
   * 字符串转Date(兼容模式)
   * @param {string} timeStr
   * @returns {Date}
   */
  stringTimeToDate(timeStr:string):Date{
    let resDate:Date;
    if(timeStr.indexOf("-")!=-1){
      let nyrArr:any=timeStr.split(' ')[0].split('-');
      let sfmArr:any=timeStr.split(' ')[1].split(':');
      resDate=new Date(nyrArr[0],nyrArr[1]-1,nyrArr[2],sfmArr[0],sfmArr[1],0,0);
    }
    if(timeStr.indexOf(".")!=-1){
      let nyrArr:any=timeStr.split(' ')[0].split('.');
      let sfmArr:any=timeStr.split(' ')[1].split(':');
      resDate=new Date(nyrArr[0],nyrArr[1]-1,nyrArr[2],sfmArr[0],sfmArr[1],0,0);
    }
    if(timeStr.indexOf("/")!=-1){
      let nyrArr:any=timeStr.split(' ')[0].split('/');
      let sfmArr:any=timeStr.split(' ')[1].split(':');
      resDate=new Date(nyrArr[0],nyrArr[1]-1,nyrArr[2],sfmArr[0],sfmArr[1],0,0);
    }
    return resDate;
  }


猜你喜欢

转载自blog.csdn.net/qq_31384551/article/details/81019725
今日推荐