我通过从状态解析字符串日期并计算到该日期的剩余分钟数并显示剩余的天数和小时数来对React进行倒计时,这是我的状态:
class App extends Component {
constructor(props) {
super(props)
this.state = {
deadline: 'August 05, 2018'
}
}
render() {
return (
<div className="App">
<div className="App-title">Offer Expires: {this.state.deadline}</div>
<Clock
deadline = {this.state.deadline}
/>
</div>
)
}
}
export default App;
这是我计算天,分钟,小时的方法:
getTimeUntil(deadline) {
const time = Date.parse(deadline) - Date.parse(new Date());
const seconds = Math.floor((time / 1000) % 60);
const minutes = Math.floor(time / 1000 * 60);
const hours = Math.floor((time / (1000 * 60 * 60)) % 24);
const days = Math.floor(time / (1000 * 60 * 60 * 24));
this.setState({ days, hours, minutes, seconds });
}
问题在于它以毫秒为单位,以以下格式返回分钟:
天:5小时:11分钟:28467780秒:54
我想将它们四舍五入为两个小数:
天:5小时:11分钟:28秒:54
我尝试添加minutes.toFixed(2)
和minutes.toPrecision(2)
但是它没有将它们弄圆,我该怎么办?
答案 0 :(得分:0)
显示前两位数字对我来说似乎是错误的。您应该使用%
来计算分钟,就像用小时和秒来计算一样。
const minutes = Math.floor((time / 1000 * 60) % 60);
答案 1 :(得分:0)
我认为只是您的分钟数计算不正确。应该是
const minutes = Math.floor(time / (1000 * 60) % 60);