【发布时间】:2020-02-13 00:14:54
【问题描述】:
我正在尝试构建一个应用程序,用户可以从日历中选择他们的生日,该应用程序会以天、小时、分钟和秒的形式向用户显示他们的年龄和距离下一个生日的剩余时间。我正在使用反应日历和时刻。不知何故,我得到了用户年龄,但我不知道如何获得剩余时间。这是我的代码:
import React, { Component } from "react";
import Calendar from "react-calendar";
import moment from "moment";
export default class App extends Component {
state = {
date: new Date(),
age: null,
timeRemaining: {
days: 0,
hours: 0,
minutes: 0,
seconds: 0
}
};
onChange = date => this.setState({ date });
handleClick = () => {
const birthday = moment(this.state.date).toDate();
const now = new Date();
const currentYear = now.getFullYear();
const birthYear = birthday.getFullYear();
let age = currentYear - birthYear;
if (now < new Date(birthday.setFullYear(currentYear))) {
age = age - 1;
}
this.setState({ age });
};
render() {
console.log(this.state.date);
console.log(this.state.age);
return (
<div>
<Calendar
onChange={this.onChange}
value={this.state.date}
onClickDay={this.handleClick}
/>
<div>{this.state.age}</div>
</div>
);
}
}
【问题讨论】:
-
如果某人的生日是 2 月 29 日怎么办?您的代码在今年 3 月 1 日/之后将如何工作?
标签: javascript reactjs