DateWrapper.js

/**
 * 处理日期的常用包装器
 *
 * @class
 *
 * */

class DateWrapper {
  constructor(props) {
//    super(props);

  }

  /**
   * 转化时间字符串为标准时间
   *@public
   * @param {string | Date } date - 标准时间字符创
   * @version 1.1.4
   * @example
   *
   * // 时间字符串的标准为: 2018-02-02 11:22
   *
   * // chrome 内核字符串 2018-02-02 11:22
   * // safari 内核字符串  2018/02/02 11:22
   *
   const {DateWrapper} = require('cleverpromise')
   const  date1 = '2018-12-2 11:22'
   const  date2 = '2018/12/2 11:22'
   console.log(DateWrapper.transDateStringStandard(date1))
   console.log(DateWrapper.transDateStringStandard(date2))
   * */
  transDateStringStandard(date) {
    if ('string' != typeof date) {
      return date
    }
    return new Date(date.replace(/\-/g, '/'))
  }

  /**
   *
   * 转换标准时间为  单位为毫秒的时间戳
   * @param {stirng | Date} date -标准时间 或标准时间字符串
   *
   * */
  dateToMs(date) {
    let result = new Date(date).getTime();
    return result;
  }

  /**
   * 标准时间戳 或 标准时间对象 转换为 标准时间字符串
   * @param { string | Date } msec
   * @returns {Object} obj -  返回处理好的格式
   * @returns  obj.hasTime - 标准时间字符串
   * @returns  obj.withoutTime -  不带时间的标准日期字符串
   * @returns  obj.withoutSecond -  不带秒数的标准时间字符串
   *
   * @example
   const date3 = new Date()
   console.log(DateWrapper.msToDateString(date3))
   // 结果应该是这样子的:
   { hasTime: '2019-08-23 13:21:07',
  withoutTime: '2019-08-23',
  withoutSecond: '2019-08-23 13:21' }
   * */
  msToDateString(msec) {
    const datetime = new Date(msec);
    const year = datetime.getFullYear();
    const month = datetime.getMonth();
    const date = datetime.getDate();
    const hour = datetime.getHours();
    const minute = datetime.getMinutes();
    const second = datetime.getSeconds();
//  第一种 返回标准时间
    const hasTime = year +
      '-' +
      ((month + 1) >= 10 ? (month + 1) : '0' + (month + 1)) +
      '-' +
      ((date + 1) < 10 ? '0' + date : date) +
      ' ' +
      ((hour + 1) < 10 ? '0' + hour : hour) +
      ':' +
      ((minute + 1) < 10 ? '0' + minute : minute) +
      ':' +
      ((second + 1) < 10 ? '0' + second : second);
// 第二种 返回日期格式
    const withoutTime = year +
      '-' +
      ((month + 1) >= 10 ? (month + 1) : '0' + (month + 1)) +
      '-' +
      ((date + 1) < 10 ? '0' + date : date);
// 第三种 返回不带秒数的标砖时间
    const withoutSecond = year +
      '-' +
      ((month + 1) >= 10 ? (month + 1) : '0' + (month + 1)) +
      '-' +
      ((date + 1) < 10 ? '0' + date : date) +
      ' ' +
      ((hour + 1) < 10 ? '0' + hour : hour) +
      ':' +
      ((minute + 1) < 10 ? '0' + minute : minute)
    return {
      hasTime,
      withoutTime,
      withoutSecond,
    }

  }


}

module.exports = {DateWrapper: new DateWrapper()}