React Hook 写 Timer时钟

import React, {useState, useEffect} from 'react'

 

const Timer = ({options}) => {

const [date, setDate] = useState(new Date())

 

useEffect(() => {

const tick = () => setDate(new Date())

const timerId = setTimeout(tick, 1000)

// 返回一个清除函数, 清除函数会在组件卸载前执行,执行当前effect前对上一个effect进行清除

return () => clearTimeout(timerId)

}, [date])

 

return <div style={{fontSize: fontSize * baseFontSize, right: 0}} className="pa">{getDate(date)}</div>

}

 

// 判断日期是否是个位数

const getDateRestult = str => {

if (str < 10) {

return `0${str}`

}

return str

}

// 获得日期

const getDate = str => {

if (str != null) {

const time = new Date(parseInt(Date.parse(str)))

// 年

const year = getDateRestult(time.getFullYear())

// 月

const month = getDateRestult(time.getMonth() + 1)

// 日

const day = getDateRestult(time.getDate())

// 时

const hours = getDateRestult(time.getHours())

// 分

const Minutes = getDateRestult(time.getMinutes())

// 秒

const seconds = getDateRestult(time.getSeconds())

 

const resultTime = `${year}/${month}/${day} ${hours}:${Minutes}:${seconds}`

return resultTime

}

}

 

export default Timer

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值