前端js计算日期 实现倒计时效果

在这里插入图片描述

<!DOCTYPE html>      
<html lang="en">      
<head>      
    <meta charset="UTF-8">      
    <title>倒计时示例</title>      
    <style>  
        #countdown {  
            font-size: 24px;  
        }  
        #countdown span {  
            margin-right: 10px; /* 添加间隔 */  
        }  
    </style>  
</head>      
<body>      
    <div id="countdown">  
        距离到期还有:<span id="days">0</span><span id="hours">0</span>小时 <span id="minutes">0</span>分钟 <span id="seconds">0</span></div>      
    <script>      
    const expiryDate = new Date(2024, 3, 2);   
        
    function updateCountdown() {    
        const now = new Date();      
        const diff = expiryDate - now;      
          
        // 防止负数出现  
        if (diff < 0) {  
            clearInterval(intervalId); // 清除定时器  
            document.getElementById('countdown').textContent = '已到期';  
            return;  
        }  
          
        // 计算剩余的天数、小时、分钟和秒数      
        const diffDays = Math.floor(diff / (1000 * 60 * 60 * 24));      
        const diffHours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));      
        const diffMinutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));      
        const diffSeconds = Math.floor((diff % (1000 * 60)) / 1000);      
          
        // 更新倒计时文本  
        document.getElementById('days').textContent = diffDays;  
        document.getElementById('hours').textContent = diffHours;  
        document.getElementById('minutes').textContent = diffMinutes;  
        document.getElementById('seconds').textContent = diffSeconds;      
    }    
      
    // 初始化倒计时显示  
    updateCountdown();  
      
    // 设置定时器,每秒更新一次倒计时  
    const intervalId = setInterval(updateCountdown, 1000);      
    </script>      
</body>      
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/493455.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

未来制造:机器人行业新质生产力提升策略

机器人行业新质生产力提升咨询方案 一、机器人行业目前发展现状及特点&#xff1a; 创新活跃、应用广泛、成长性强。 二、机器人企业发展新质生产力面临的痛点&#xff1a; 1、高端人才匮乏 2、核心技术受限 3、竞争日益国际化 4、成本控制挑战 5、用户体验提升需求 三…

Linux软件安装:源代码与Tarball

文章目录 Linux源码包的安装与升级什么是源代码、编译器与可执行文件什么是函数库什么是make与configure什么是Tarball的软件如何安装与升级软件 使用gcc进行编译的简单实例单一程序&#xff1a;打印 Hello World主、子程序链接&#xff1a;子程序的编译调用外部函数库&#xf…

三轴工作台激光焊接机:实现高精度、高效率焊接的新选择

三轴工作台激光焊接机是一种先进的焊接设备&#xff0c;结合了激光焊接技术与三轴工作台的运动控制&#xff0c;实现了焊接过程的高效、精准与自动化。这种设备主要利用激光束的高能量密度和高速度特性&#xff0c;使工件在熔化的同时快速冷却凝固&#xff0c;从而达到高质量的…

AXI Memory Mapped to PCI Express学习笔记(一)——PCIe事务

1 PCIe事务 AXI事务对于PCIe来说&#xff0c;主要涉及到在AXI总线和PCIe总线之间进行数据交换和通信的过程。在PCIe系统中&#xff0c;AXI总线作为一个连接不同组件的桥梁&#xff0c;可以实现高效的数据传输和事务处理。 AXI事务通常包括读事务和写事务。在读事务中&#xf…

Git的使用记录+坑的处理

上学期也使用过git拉取gitee的项目进行远程办公,但是因为那个项目太赶,所以没有记录是如何使用的. 现在这个项目需要拉取gitlab上面的资源,于是再次使用了git,就记录一下基本操作和一些问题. 1.基本命令 git clone <repository-url> [<repository-url>代表远程仓库…

Java中锁的分类

引言 在多线程并发编程场景中,锁作为一种至关重要的同步工具,承担着协调多个线程对共享资源访问秩序的任务。其核心作用在于确保在特定时间段内,仅有一个线程能够对资源进行访问或修改操作,从而有效地保护数据的完整性和一致性。锁作为一种底层的安全构件,有力地防止了竞…

Qt开发(2)——在已有VS项目中配置Qt

在之前的Qt开发学习中&#xff0c;基本都是在Qt Creator中创建一个Qt项目&#xff0c;或者即便是在VS中也是直接新建一个Qt项目。但很少有记录如何在已有的C项目中添加Qt,这就好比我有个项目已经开发完了&#xff0c;现在又说加个Qt界面的功能。这篇文章就是记录如何在已有项目…

Programming Abstractions in C阅读笔记:p338-p346

《Programming Abstractions in C》学习第80天&#xff0c;p338-p346&#xff0c;总计9页。 一、技术总结 栈的实现包括入栈、出栈、判断栈是否为满&#xff0c;判断栈是否为空等。作者结合RPN计算器来实现&#xff0c;稍显无聊。 /** File: rpncalc.c* ---------------* Th…

VMware和Xshell连接

1.开启虚拟机 2.使用管理员账户&#xff0c;点击未列出 3.输入用户名密码 4.点击编辑虚拟网络编辑器 5.记住自己的网关和IP地址 6.打开终端 7.输入命令&#xff0c;vim / etc / sysconfig / network -scripts / ifcfg-ens33 回车 8.修改图中两处按“ I ”键进入编辑 d…

号码采集协议讲解

仅供学习研究交流使用 需要的进去拿源码或者成品

k8s1.28.8版本安装prometheus并持久化数据

本文参考 [k8s安装prometheus并持久化数据_/prometheus-config-reloader:-CSDN博客](https://blog.csdn.net/vic_qxz/article/details/119598466)前置要求: 已经部署了NFS或者其他存储的K8s集群. 这里注意networkpolicies网络策略问题&#xff0c;可以后面删除这个策略&#x…

Mysql连接查询

目录 一、连接查询 1.1内连接 1.2 左连接 1.3 右连接 二、存储过程 2.1 简介 2.2 优点 2.3语法 2.4 创建与调用存储过程 ​编辑2.4.1 查看存储过程 2.5 存储过程的参数 2.6 删除存储过程 一、连接查询 MySQL 的连接查询&#xff0c;通常都是将来自两个或多个表的记录…

如何利用nginx在windows系统上搭建一个文件服务器

1&#xff1a;先下载windows版的nginx 官网 http://nginx.org/ 下载完后注意端口号&#xff08;默认端口号为&#xff1a;80&#xff09;是否被占用 启动nginx服务 地址为localhost的 如果出现 Welcome to nginx 就说明启动成功 2&#xff1a;然后进入conf文件里修改配置 …

Mysql数据库——高级SQL语句补充

目录 一、子查询——Subquery 1.环境准备 2.In——查询已知的值的数据记录 2.1子查询——Insert 2.2子查询——Update 2.3子查询——Delete 3.Not In——表示否定&#xff0c;不在子查询的结果集里 3.Exists——判断查询结果集是否为空 4.子查询——别名 二、视图—…

GPIO端口的BSRR的使用

BSRR 只写寄存器 既能控制管脚为高电平&#xff0c;也能控制管脚为低电平。对寄存器高 16bit 写1 对应管脚为低电平&#xff0c;对寄存器低16bit写1对应管脚为高电平。写 0 ,无动作 首先看GPIOC的定义 接着看这个类型的定义 可以看到BSRR为无符号的32位的整形 接下来看GPIO_Pi…

【旅游】泉州攻略v1.0.0

一、泉州古城 泉州市距离深圳大约520公里&#xff0c;从深圳北站出发&#xff0c;高铁大约3小时30分。 到达泉州西站后&#xff0c;往东南方向大约8公里&#xff0c;就可以到达主要的旅游景点泉州古城。 古城很适合使用一天玩耍&#xff0c;核心路线如下&#xff1a; 一路的景…

python安装与使用

1安装 1.0下载 从官网下载安装包欢迎来到 Python.orghttps://www.python.org/ 1.1安装 双击安装包 将 图中选项勾选 之后如图 在点击 等待安装&#xff0c;安装之后关闭&#xff08;Close&#xff09; 2实现第一个python程序 2.0打开python运行环境 安装之后在开始菜单…

8.HelloWorld小案例

文章目录 一、Java程序开发运行流程如何理解编译&#xff1f; 二、HelloWorld案例的编写1、新建文本文档文件&#xff0c;修改名称为HelloWorld.java。2、用记事本打开HelloWorld.java文件&#xff0c;输写程序内容。代码要跟我编写的完全保持一致。3、ctrl s 保存&#xff0c…

【Java程序设计】【C00389】基于(JavaWeb)Springboot的校园疫情防控系统(有论文)

基于&#xff08;JavaWeb&#xff09;Springboot的校园疫情防控系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;已经做了六年的毕业设计程序开发&#xff0c;开发过…

【C++】用哈希桶模拟实现unordered_set和unordered_map

目录 一、哈希介绍1.1 哈希概念1.2 哈希冲突解决1.2.1 闭散列1.2.2 开散列 二、哈希桶2.1 实现哈希桶2.1.1 构造节点和声明成员变量2.1.2 构造与析构2.1.3 仿函数2.1.4 查找2.1.5 插入2.1.6 删除 2.2 kv模型哈希桶源代码 三、改造哈希桶3.1 beginend3.2 迭代器3.2.1 前置 3.3 改…