【发布时间】:2022-01-09 17:02:18
【问题描述】:
我有以下函数来计算开始和结束之间的时间(这只是输入字段)。
calculateTime() {
if(this.state.start !== '' && this.state.end !== ''){
let time1 = moment(this.state.end, "hh:mm");
let subtract = time1.subtract(this.state.start);
let format = moment(subtract).format("hh:mm");
console.log(format);
return format;
}
return 0;
}
一般来说,计算是有效的。该值通过输入字段设置,状态更新为输入的值。如此处所示:
<table>
<thead>
<tr>
<th>Date</th>
<th>Start</th>
<th>End</th>
<th>Time</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<input type="date" id="start" name="trip-start"
min="2022-01-01" max="2023-12-31" onChange={this.handleDate} value={this.state.date} />
</td>
<td>
<input type="text" onChange={this.handleStart} placeholder="hh:mm" maxLength={5} />
</td>
<td>
<input type="text" onChange={this.handleEnd} placeholder="hh:mm" maxLength={5} />
</td>
<td>
<p>{this.calculateTime()}</p>
</td>
</tr>
</tbody>
</table>
设置开始状态的函数(设置结束值类似,只是调用了另一个函数来更新状态)
handleStart(event:any) {
this.setState({
start: event.target.value
});
}
这里应该是 13:01 而不是 01:01
这里应该是 00:01 而不是 12:01
除了手动添加或删除 12h 之外,还有人知道如何解决这个问题吗?
【问题讨论】:
-
你能提供更多关于“当我添加”的信息吗?
-
@Shubhamsoni 我添加了一些附加信息。通常,值只是通过输入输入。但正如所说的设置值工作正常
-
恐怕,我还是没听懂你。当您在调用
calculateTime时说“例如这些值作为开始和结束并且格式关闭 12h”是什么意思? -
我添加了一些图片和整个html,希望有助于澄清
标签: javascript reactjs momentjs