script - 时间对象

104 阅读2分钟

创建时间对象

时间对象的创建: new Date() 括号里如果不传参就是本机的时间

  • 如果需要传递参数,分为两种形式
    • 数字: 至少要传递两个值,年 和 月(月份是0-11)
    • 字符串: 可以传递一个参数(月份是1-12)
var timer = new Date()
console.log(timer)  // 这里没有传参,就是本地时间
// 1: 数字形式传参
var timer1 = new Date(2022,11,12,08,08,08)  // 这里是年月日时分秒
console.log(timer1)  // 控制台输出的是12月,比实际写的多一个月
// 2: 字符串形式传参
var timer2 = new Date('2020-1-15 13:15:15')
console.log(timer2)  // 输出的是实际输入的月份
封装一个函数,格式化时间对象
function getTime () {
    var timer = new Date() // 创建一个时间对象
    var year = timer.getFullYear() // 得到时间对象中的年份
    year < 10 ? '0' + year : year
    var month = timer.getMonth() + 1  // 得到时间对象中的月份
    month < 10 ? '0' + month : month
    var date = timer.getDate() // 得到时间对象中的哪一天
    date < 10 ? '0' + date : date
    var hours = timer.getHours() // 得到时间对象中的小时
    hours < 10 ? '0' + hours : hours
    var minutes = timer.getMinutes() // 得到时间对象中的分钟
    minutes < 10 ? '0' + minutes : minutes
    var seconds = timer.getSeconds() // 得到时间对象中的秒
    seconds < 10 ? '0' + seconds : seconds
    var arr = ['星期日','星期一','星期二','星期三','星期四','星期五','星期六']
    var day = timer.getDay() //得到时间对象中的 一周的第几天(周日为0,周六为6)
    return '今天是' + year + '年' + month + '月' + date + '日' + arr[day]
}
console.log(getTime())
计算两个时间的时间差
// 比如计算 2023 年 1 月 1 日到当前的时间差
        var times = new Date('2023-1-1')
        var nowTime = new Date()

        var time1 = times.getTime()  // 过去的毫秒数
        var time2 = nowTime.getTime() // 现在的毫秒数
        var timer = time2 - time1 

        // 求过去了多少天
        var days = 1000 * 60 * 60 * 24
        var day = parseInt(timer / days)
        console.log(day);

        timer = timer - days * day

        // 求过去了多少小时
        var hour = 1000 * 60 * 60 
        var hours = parseInt(timer / hour)
        console.log(hours);

        timer = timer - hour * hours

        // 求过去了多少分钟
        var minute = 1000 * 60 
        var minutes = parseInt(timer / mount )   
        console.log(minutes);