Math 操作数字的方法 + Date 操作时间的方法

Math 操作数字的方法

  • 都是用来操作数字的方法

  • js 提供的一个内置对象

  • 常用方法

    1. random() 产生 0 ~ 1 的随机数,不包含1
    2. round() 四舍五入取整
    3. ceil() 向上取整
    4. floor() 向下取整
    5. sqrt() 开平方根
    6. pow(底,幂) 取幂
    7. max() 取最大值
    8. min() 取最小值
    9. abs() 取绝对值
    10. PI
      • 不是方法是属性
      • 不用加 ()
      • PI 是大写
  • 转换进制的方法

    1. toString(要转换的进制数)
      • 把一个十进制的数字转换成其他进制
      • 返回值是一个 字符串
    2. parseInt(一个数字, 把前面的数字当作几进制)
      • 把一个其他进制的数字转换成十进制
      • 返回值是一个 数字
  • 保留小数的方法

    • toFixed(要保留几位小数)
      • 返回值是一个 字符串
  • 区间范围内的随机数字

    Math.floor(Math.random() * (大数 - 小数 + 1)) + 小数
    

Date 操作时间的方法

  • js 提供的一个内置构造函数

  • 创建一个时间对象

    • var time = new Date()
      • time 是复杂数据类型
  • 创建一个指定日期的时间对象

    • new Date() 的时候传递参数

    • 传数字(最少两个)

        • 0 表示 1月,11表示 12月
    • 传字符串

      1. '2018-12-12 || '2018/12/12''
      2. '2018/12/12 12:12:12'
  • 获取时间对象中的参数

    1. getFullYear()
    2. getMonth()
    3. getDate()
    4. getHours()
    5. getMinutes()
    6. getSeconds()
    7. getDay() 一周中的第几天
    8. getTime() 获取时间戳
  • 使用方法设置时间对象的参数

    1. setFullYear()
    2. setMonth()
    3. setDate()
    4. setHours()
    5. setMinutes()
    6. setSeconds()
    7. setTime()
  • 时间差的思路

    • 两个时间对象的时间戳相减(得到的是ms)
    • 拿相差的时间取进行格式化

练习题

<script>

        // 把当前时间转换成中文
        // 2019/8/27 14:50:12
        // 二零一九年八月二十七日 下午 两点五十分十二秒 星期二

        /*
            1. 格式化数字
                + 格式化年
                + 格式化数字
        */

        // 1. 先写一个格式化年的函数

        var arr = ['零','一', '二', '三', '四', '五', '六', '七', '八', '九', '十']

        function formatYear (n) {
            var a = parseInt(n / 1000)
            var b = parseInt(n % 1000 / 100)
            var c = parseInt(n % 1000 % 100 / 10)
            var d = parseInt(n % 10)
            console.log(arr[a], arr[b], arr[c], arr[d])
            return arr[a] + arr[b] + arr[c] + arr[d] + '年'
        }
        formatYear(2019)

        // 2. 再写一个格式化月份 日期 时 分 秒 这些数字的函数

        function formatNumber (n) {
            var str = []
            if (n <= 10) {
                return arr[n]
            } else if (n < 20) {
                return '十' + arr[n - 10]
            } else if (n >= 20 && n % 10 === 0) {
                return arr[n / 10] + '十'
            } else {
                var a = parseInt(n / 10)
                var b = parseInt(n % 10)
                return arr[a] + '十' + arr[b]
            }
        }
        

        // 3. 最后写一个总的调用前两个函数的函数来完成目标
        function formatTime (time) {

            var str = ''
            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 day = time.getDay() 

            str += formatYear(year)
            str += formatNumber(month) + '月'
            str += formatNumber(date) + '日 '
            

            if (hours < 12) {
                str += '上午 ' 
            } else {
                str += '下午 '
            }
            
            if (hours === 12) {
                str += formatNumber(hours) + '时'
            } else {
                str += formatNumber(hours % 12) + '时'
            }
            
            str += formatNumber(minutes) + '分'
            str += formatNumber(seconds) + '秒 '
            
            if (day === 0) {
                str += '星期' + '日'
            } else {
                str += '星期' + formatNumber(day)
            }


            return str
        }
        var time = new Date()
        var res2 = formatTime(time)
        console.log(res2)


        console.log(navigator.platform)
    </script>
    <script>

        // 用之前的计算时间差的方法在页面上计算当前时间到设定时间的时间差

        function subTime (t1, t2) {

            var str = ''
            var msc = parseInt(Math.abs(t1.getTime() - t2.getTime()) / 1000)
            
            // 算多少天
            var Day = parseInt(msc / (60 * 60 *24))
            
            // 算多少小时
            var Hours = parseInt((msc - (Day * (60 * 60 * 24))) / (60 * 60))
            
            // 算多少分钟
            var Minutes = parseInt((msc - (Day * (60 * 60 * 24)) - Hours * 60 * 60) / 60)
            
            // 算多少秒
            var Second = msc - (Day * (60 * 60 * 24)) - (Hours * 60 * 60) - (Minutes * 60) 
        
            str += Day + '天 '
            str += Hours + '小时 '
            str += Minutes + '分钟 '
            str += Second + '秒 '
            // console.log(str)
            return str

        }

        setInterval (function () {
            var time1 = new Date()
            var time2 = new Date(2020, 10, 30, 20, 30, 40)
            var res = subTime(time1, time2)
            timeBox.innerText = res
        }, 1000)
        
    </script>

</body>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值