/*
      格式化时间
        + 把时间格式化成中文模式
        + 二零二零年八月十号 下午 三点五十二分十五秒

      1. 准备一个数组
        + 把汉字准备好
      2. 获取当前的时间节点
      3. 把时间对象里面的信息整出来
      4. 转汉字
        4-1. 年
          => 格式化年的函数
        4-1. 其他
      5. 组装
    */

    // 1. 准备一个汉字数组
    var arr = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九', '十']

    // 2. 获取时间节点
    var time = new Date()

    // 3. 获取时间对象里面得所有信息
    var year = time.getFullYear()
    var month = time.getMonth() + 1
    var date = time.getDate()
    var hours = time.getHours()
    var minutes = time.getMinutes()
    var seconds = time.getSeconds()
    var week = time.getDay()

    // 4. 准备两个函数
    // 4-1. 格式化年
    function forgetYear(year) {
      // 2020 二零二零
      // 直接把数字拆成 四位
      var a = parseInt(year / 1000)
      var b = parseInt(year % 1000 / 100)
      var c = parseInt(year % 100 / 10)
      var d = year % 10

      // 转换成中文, 就把四个数字当作索引取数组里面拿到东西
      return arr[a] + arr[b] + arr[c] + arr[d] + ' 年'
    }

    // 4-2. 格式化其他数字
    function forgetNum(num) {
      // 阅读方式
      // 个位 一 / 二 / 三 / 十    <= 10
      // 十几 十一 / 十二 / 十三   < 20
      // 几十 二十 / 三十 / 四十   % 10 === 0
      // 几十几  二十一 / 三十五

      // 先拆数字
      var a = parseInt(num / 10)
      var b = num % 10

      // 判断数字是不是小于等于十
      if (num <= 10) {
        return arr[num]
      } else if (num < 20) {
        return '十' + arr[b]
      } else if (num % 10 === 0) {
        return arr[a] + '十'
      } else {
        return arr[a] + '十' + arr[b]
      }
    }


    var str = ''
    // 组装年
    str += forgetYear(year)
    // 组装月
    str += ' ' + forgetNum(month) + ' 月 '
    // 组装日
    str += forgetNum(date) + ' 日 '
    // 组装周几
    if (week === 0) {
      str += ' 周日 '
    } else {
      str += ' 周' + forgetNum(week)
    }
    // 组装小时
    str += ' ' + forgetNum(hours) + ' 点 '
    // 组装分钟
    str += forgetNum(minutes) + ' 分 '
    // 组装秒钟
    str += forgetNum(seconds) + ' 秒 '

    console.log(str)

 

posted on 2021-07-08 20:28  phantom_yy  阅读(218)  评论(0)    收藏  举报