尝试使用 React 计算带有价格的日期
Posted
技术标签:
【中文标题】尝试使用 React 计算带有价格的日期【英文标题】:trying to calculate dates with price using React 【发布时间】:2021-04-26 02:34:57 【问题描述】:我正在尝试通过从签入和签出值中获取选定日期并添加每天的价格来计算总价。
我找不到如何从日期中获取数值的解决方案。
这是我迄今为止尝试过的:
解析 Int() 解析浮点数() Date.parse()我的代码
handleChange = (e) =>
e.preventDefault();
this.setState( [e.target.name]: e.target.value );
let checkIn = Date.parse(this.state.checkin);
let checkOut = Date.parse(this.state.checkout);
console.log("test" + checkIn + checkOut);
let days = Math.floor((checkOut - checkIn) / (1000 * 60 * 60 * 24));
let totalPrice = price * days;
localStorage.setItem("totalPrice", totalPrice);
this.validateFormData();
;
表格的签入/签出部分:
<Form.Label htmlFor="checkin" className="form__label">
Check In
</Form.Label>
<input
name="checkin"
label="Next appointment"
type="date"
className="form__control"
required="required"
value=this.state.checkin
onChange=this.handleChange
/>
formErrors.checkin.length > 0 && (
<span className="[ form__error ]">
<i>formErrors.checkin</i>
</span>
)
</Form.Group>
<Form.Group className="form__group">
<Form.Label htmlFor="checkout" className="form__label">
Check Out
</Form.Label>
<input
name="checkout"
label="Next appointment"
type="date"
className="form__control"
required="required"
value=this.state.checkout
onChange=this.handleChange
/>
formErrors.checkout.length > 0 && (
<span className="[ form__error ]">
<i>formErrors.checkout</i>
</span>
)
</Form.Group>
<p>
TotalPrice = localTotalPrice Price:" "
<span className="card__price--color"> price$</span>
</p>
【问题讨论】:
【参考方案1】:this.setState
是一个异步函数。因此,this.setState( [e.target.name]: e.target.value );
期间所做的更改不会立即可用。
如果必须使用这些值,最好直接使用e.target.value
。然后Date.parse
应该可以工作
【讨论】:
以上是关于尝试使用 React 计算带有价格的日期的主要内容,如果未能解决你的问题,请参考以下文章
带有时区信息的日期时间模块中的python timedelta计算[重复]