盘算时间差,页面倒计时,安卓与ios兼容问题

媒介

在开辟一些有关商品交易类的项目时,多半会碰到运动倒计时之类的需求,近来也是在小顺序中碰到,完成要领许多,然则在小顺序中碰到ios和安卓的兼容题目,所以记录下来

代码

/**
   * timestampSwitch - 依据对照传入的两个时候戳,盘算出相差的时分秒
   *
   * @param{String}startTimestamp 盘算肇端时候戳,默许是当前时候
   * @param{Number}endTimestamp 盘算完毕时候(当前接收的是时候字符串,如2018-11-30 23:59:59)
   * @return{Object}
   */
  const timestampSwitch = (endTimestamp, startTimestamp = (new Date()).valueOf()) => {
    if (!Number(endTimestamp) || !Number(startTimestamp)) console.error('Incorrect parameter');
    // 兼容ios
    let et = Date.parse(endTimestamp) || Date.parse(endTimestamp.replace(/-/g, '/'));
    // 盘算
    let difference = (endTimestamp - startTimestamp),
        timeDifference = (difference > 0 ? difference : 0) / 1000,
        days = parseInt(timeDifference / 86400),
        hours = parseInt((timeDifference % 86400) / 3600),
        minutes = parseInt((timeDifference % 3600) / 60),
        seconds = parseInt(timeDifference % 60);

    return {
      days,
      hours,
      minutes,
      seconds
    }
  };

题目

题目在于背景给我的是时候字符串,我们须要转为时候戳后盘算,然则安卓和ios转换时会有差别如上代码
iOSDate.parse(endTimestamp)转为时候戳会报错,兼容性要领Date.parse(endTimestamp.replace(/-/g, '/'))

    原文作者:茶树菇小学生
    原文地址: https://segmentfault.com/a/1190000017211891
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞