JavaScript 制作简单的网页下班倒计时 ,点赞加关注案例持续更新~

效果动图:

日期对象知识点:

Date对象的一些常用属性和方法包括:

获取:

  1. getFullYear(): 返回四位数的年份。

  2. getMonth(): 返回月份,范围是0-11。

  3. getDate(): 返回月份中的日期,范围是1-31。

  4. getHours(): 返回小时,范围是0-23。

  5. getMinutes(): 返回分钟,范围是0-59。

  6. getSeconds(): 返回秒数,范围是0-59。

  7. getTime(): 返回自1970年1月1日00:00:00 UTC至该日期对象的毫秒数。

  8. getDay(): 返回一周中的第几天,范围是0-6,其中0代表星期日。

  9. getHours(): 返回本地的小时,范围是0-23。

  10. getUTCHours(): 返回UTC(协调世界时)的小时数,范围是0-23。

设置:

  1. setFullYear(year): 设置四位数的年份。

  2. setMonth(month): 设置月份,范围是0-11。

  3. setDate(date): 设置月份中的日期,范围是1-31。

  4. setHours(hours): 设置小时,范围是0-23。

  5. setMinutes(minutes): 设置分钟,范围是0-59。

  6. setSeconds(seconds): 设置秒数,范围是0-59。

  7. setMilliseconds(milliseconds): 设置毫秒数,范围是0-999。

  8. getTime(): 返回自1970年1月1日00:00:00 UTC至该日期对象的毫秒数。

  9. getDay(): 返回一周中的第几天,范围是0-6,其中0代表星期日。

  10. getHours(): 返回本地的小时,范围是0-23。

  11. getUTCHours(): 返回UTC(协调世界时)的小时数,范围是0-23。

补充:

  1. toString():将日期转换为字符串。

  2. toLocaleDateString():将日期转换为本地格式的字符串。

  3. toTimeString():将时间转换为字符串。

  4. toLocaleTimeString():将时间转换为本地格式的字符串。

 思路:

   先给new Date ()括号里面加时间参数-->  const targetTime = new Date(2060, 9, 1, 17, 30, 0)。我设置的时间为2060年10月1日,这里的月份是从0开始计数的,所以9代表10月。日期是1,表示10月1日。然后是小时(17)、分钟(30)和秒(0),这样的代码将创建一个表示2060年10月1日17点30分的 Date 对象。

然后获取2060年10月1日 到1970年1月1日的毫秒--> targetTime.getTime()

同理再获取现在的时间到1970年1月1日的毫秒数--> const time = new Date() 

 time.getTime()

拿自己设置的时间与1970年1月1日的毫秒时间差减去现在的时间与1970年1月1日的毫秒时间差,就可以获得目标时间到现在时间的毫秒时间差,后面再进行逻辑计算即可

全部代码如下,代码里有详细的注释 

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
        /* 设置倒计时容器的样式 */
        .countdown {
            width: 240px;
            height: 305px;
            text-align: center;
            line-height: 1;
            color: #fff;
            background-color: brown;
            overflow: hidden;
            margin: 50px auto;
        }

        /* 设置倒计时容器中"下一个"元素的样式 */
        .countdown .next {
            font-size: 16px;
            margin: 25px 0 14px;
        }

        /* 设置倒计时容器中标题的样式 */
        .countdown .title {
            font-size: 33px;
        }

        /* 设置倒计时容器中提示信息的样式 */
        .countdown .tips {
            margin-top: 80px;
            font-size: 23px;
        }

        /* 设置倒计时容器中小号字体的样式 */
        .countdown small {
            font-size: 17px;
        }

        /* 设置倒计时数值部分的样式 */
        .countdown .clock {
            width: 142px;
            margin: 18px auto 0;
            overflow: hidden;
        }

        /* 设置倒计时数值部分中每个数字框的样式 */
        .countdown .clock span,
        .countdown .clock i {
            display: block;
            text-align: center;
            line-height: 34px;
            font-size: 23px;
            float: left;
        }

        /* 设置倒计时数值部分中数字框的样式 */
        .countdown .clock span {
            width: 34px;
            height: 34px;
            border-radius: 2px;
            background-color: #303430;
        }

        /* 设置倒计时数值部分中冒号的样式 */
        .countdown .clock i {
            width: 20px;
            font-style: normal;
        }
    </style>
</head>

<body>
    <div class="countdown">
        <p class="next">今天是2023年2月22日</p> <!-- 显示日期的元素 -->
        <p class="title">下班倒计时</p> <!-- 显示标题的元素 -->
        <p class="clock">
            <!-- 显示倒计时数值的元素 -->
            <span id="hour"></span> <!-- 显示小时数的元素 -->
            <i>:</i> <!-- 显示冒号分隔符的元素 -->
            <span id="minute"></span> <!-- 显示分钟数的元素 -->
            <i>:</i> <!-- 显示冒号分隔符的元素 -->
            <span id="second"></span> <!-- 显示秒数的元素 -->
        </p>
        <p class="tips">17:30:00下班</p> <!-- 显示下班时间的元素 -->
    </div>
    <script>
        // 选中时分秒
    const hour = document.querySelector('#hour')
    const minute = document.querySelector('#minute')
    const second = document.querySelector('#second')
    const next = document.querySelector('.next')
    // 设置定时器,每秒钟更新倒计时数值
    setInterval(function(){
      const time = new Date()  // 获取当前时间
      const targetTime = new Date(2060, 9, 1, 17, 30, 0)  // 设置目标下班时间
      const diff = targetTime.getTime() - time.getTime()  // 计算倒计时的毫秒数
            
      let hours = Math.floor(diff % (24 * 3600 * 1000) / (3600 * 1000))  // 计算剩余小时数
      let minutes = Math.floor(diff % (3600 * 1000) / (60 * 1000))  // 计算剩余分钟数
      let seconds = Math.floor(diff % (60 * 1000) / 1000)  // 计算剩余秒数
      
      // 如果时分秒的值小于10,就在数字前面加个0,这里用的三元运算符,也可以使用if语句
      hours = hours<10? '0'+hours:hours
      minutes = minutes<10? '0'+minutes:minutes
      seconds = seconds<10? '0'+seconds:seconds
      // 输出现在的年月日
      next.innerHTML=`今天是${time.getFullYear()}年${time.getMonth()+1}月${time.getDate()}日`
      // 显示倒计时数值时分秒
      hour.innerHTML=hours
      minute.innerHTML=minutes
      second.innerHTML=seconds
    },1000)
    </script>

</body>

</html>

  • 15
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十七同志

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值