JS方法

html部分

        <div class="clock">
<i></i>

<i></i>
:
<i></i>
:
<i></i>
后截止统计
</div>

css部分

.clock{
width: 13.7rem;
height: 1rem;
margin-top:31.42rem;
color: #666666;
font-size: 0.85rem;
line-height: 1rem;
} .clock i{
background: #ED0007;
color: #FFF;
font-weight: bold;
width: 1.2rem;
height: 1.04rem;
line-height: 1.04rem;
text-align: center;
display: inline-block;
}

  

js部分

let clock = document.getElementsByClassName('clock');
setInterval(function(){
let nowtime = new Date();
let endtime = new Date(2020,9,1,0,0,0); //设定的截止日期是10月1日,注意 Date方法中的月份提前一个月 let num = endtime.getTime() - nowtime.getTime() //以number形式表示的时间戳之差 // 以下是计算分时秒的过程
let day = parseInt(num/(1000*60*60*24));
num %= 1000*60*60*24;
let hour = parseInt(num/(60*60*1000));
num %= 1000*60*60;
let minute = parseInt(num/(60*1000));
num %= 60*1000;
let second = parseInt(num/1000); clock[0].children[0].innerHTML = day;
clock[0].children[1].innerHTML = hour;
clock[0].children[2].innerHTML = minute;
clock[0].children[3].innerHTML = second;
},100)

React方法

最大不同就是对dom元素的内容展示,间接转为对state的控制。

import React from 'react';
import ReactDOM from 'react-dom';
import './Clock.less'; class Clock extends React.Component {
constructor(props) {
super(props);
console.log(props)
this.state = {
day: 0,
hour: 0,
min: 0,
sec: 0,
isShow:true,
}
} componentDidMount () {
this.countClock();
} componentWillUnmount() {
clearTimeout(this.timer);
} countClock = ()=> {
this.timer = setInterval(() => {
var nowtime = new Date();
var endtime = new Date(2020,8,4,0,0,0); //设定的截止日期是10月1日
var num = endtime.getTime() - nowtime.getTime() //以number形式表示的时间戳之差
if(num<=0){
clearInterval(this.timer);
changeStatus();
this.setState({
day: 0,
hours: 0,
min: 0,
sec: 0,
isShow:false,
});
}else{
var day = parseInt(num/(1000*60*60*24));
num %= 1000*60*60*24;
var hour = parseInt(num/(60*60*1000));
num %= 1000*60*60;
var minute = parseInt(num/(60*1000));
num %= 60*1000;
var second = parseInt(num/1000);
this.setState({
day:day,
hour:hour,
min:minute,
sec:second,
isShow:true,
})
}
},100)
} render() {
const { day,hour,min,sec } = this.state;
return (
<div>
<i>{day}</i>

<i>{hour}</i>
:
<i>{min}</i>
:
<i>{sec}</i>
后截止统计
</div>
);
}
} export default Clock;

可能方法还是比较愚钝的,希望可以给出更好的答案!

JS与React分别实现倒计时(天时分秒)的更多相关文章

  1. JS倒计时——天时分秒

      HTML代码: <div id="times_wrap" class="time_num">    距离结束时间:     <div cl ...

  2. JQ倒计时天时分秒

    <div id="times_wrap" class="time_num"> 距离现在时间: <div class="time_w& ...

  3. js倒计时天时分秒[转]

    <script language="JavaScript"> <!-- // function getQueryString(name) { var reg =n ...

  4. JS时间处理,获取天时分秒

    //获取时间的天,小时,分钟,秒 function ToTime(second) { second = second / ; var result ; ) % ; ) % ; * )); ) { re ...

  5. JS时间处理,获取天时分秒。以及浏览器出现的不兼容问题

    //获取时间的天,小时,分钟,秒 function ToTime(second) { second = second / ; var result ; ) % ; ) % ; * )); ) { re ...

  6. JS - The react framework

    这几天因为赶时间 , 所以理解上可能有许多的误差 , 如果你不幸点进来了 , 请不要看我的代码 , 这几天我会重新修改 , 然后把错误的不足的 全部修正一下 . /hwr/src/index.js i ...

  7. React Native之倒计时组件的实现(ios android)

    React Native之倒计时组件的实现(ios android) 一,需求分析 1,app需实现类似于淘宝的活动倒计时,并在倒计时结束时,活动也结束. 2,实现订单倒计时,并在倒计时结束时,订单关 ...

  8. D3.js(v3)+react框架 基础部分之数据绑定及其工作过程与绑定顺序

    数据绑定: 将数据绑定到Dom上,是D3最大的特色.d3.select和d3.selectAll返回的元素的选择集.选择集上是没有数据的. 数据绑定就是使被选择元素里“含有”数据. 相关函数有两个: ...

  9. immutable.js 在React、Redux中的实践以及常用API简介

    immutable.js 在React.Redux中的实践以及常用API简介 学习下 这个immutable Data 是什么鬼,有什么优点,好处等等 mark :  https://yq.aliyu ...

随机推荐

  1. 关于PowerShell调用Linq的一组实验

    Windows PowerShell 版权所有 (C) Microsoft Corporation.保留所有权利. 尝试新的跨平台 PowerShell https://aka.ms/pscore6 ...

  2. bzoj2561最小生成树

    bzoj2561最小生成树 题意: 给定一个连通无向图,假设现在加入一条边权为L的边(u,v),求需要删掉最少多少条边,才能够使得这条边既可能出现在最小生成树上,也可能出现在最大生成树上. 题解: 最 ...

  3. GPO - File Server Management

    Creating disk space usage quotas: File Screening Generate Storage Report, including file edit audit. ...

  4. Keras之对鸢尾花识别

    Keras之队鸢尾花识别 任务目标 对鸢尾花数据集分析 建立鸢尾花的模型 利用模型预测鸢尾花的类别 环境搭建 pycharm编辑器搭建python3.* 第三方库 numpy pandas sklea ...

  5. java opencsv解析csv文件

    记一次使用opencsv解析csv文件时碰到的坑 最近在开发过程中需要解析csv文件,公司用的解析工具是opencsv,在根据opencsv的官方文档去解析时发现csv文件中含有繁体字,使用其自带的C ...

  6. SQL语句中带有EXISTS谓词的子查询的理解与使用

    EXISTS:代表存在量词. 在SQL中,把具有全称量词的谓词查询问题转换成等价的存在量词的谓词查询予以实现. 如有三个表,Student(Sno,Sname),Course(Cno,Cname),S ...

  7. 简单理解:数据库的一致性与四种隔离级别(+MySQL实现)

    并行数据库存在着几种常见不一致问题: 1.更新丢失:两个并发的写进程同时修改某内容,一个没修改完提交之后另一个又提交,导致其覆盖了第一个提交的写进程内容. 2.脏读:一个操作读到了另外一个操作没有提交 ...

  8. 删除表中重复数据,只删除重复数据中ID最小的

    delete t_xxx_user where recid in ( select recid from t_xxx_user where recid in ( select min(recid) f ...

  9. sed 指定行范围匹配

    sed -n '5,10{/pattern/p}' file sed是一个非交互性性文本编辑器,它编辑文件或标准输入 导出的文件拷贝.标准输入可能是来自键盘.文件重定向.字符串或变量,或者是一个管道文 ...

  10. Dockerfile镜像优化,减小镜像

    前言镜像的优化注意几条: 选择最精简的基础镜像减少镜像的层数清理镜像构建的中间产物注意优化网络请求尽量去用构建缓存使用多阶段构建镜像接下来我们以rhel7镜像构建容器,并在容器中安装nginx的源码包 ...