时间差给出无效日期
Difference in time is giving Invalid date
我有一个场景,我想在计算前两个文本框的 InTime
和 OutTime
后显示员工的总时间。
这是场景,
In first textbox
用户将添加 INTIME
In Second textbox
用户将添加 OUTTIME
.
输入这两个值后,第三个文本框将显示员工的总工作时间。
这是我试过的。
HTML
<tr>
<td>
<asp:Label ID="lblInTime" runat="server" Text="In Time" Visible="true"></asp:Label>
<asp:TextBox ID="txtInTime" runat="server" Width="89px"></asp:TextBox> (HH:MM)
<asp:RegularExpressionValidator ID="regIntime" runat="server" ControlToValidate="txtInTime"
ErrorMessage="Please enter time in correct format" ValidationExpression="^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblOutTime" runat="server" Text="Out Time" Visible="true"></asp:Label>
<asp:TextBox ID="txtOutTime" runat="server" onkeyup="sum();" Width="89">
</asp:TextBox> (HH:MM)
<asp:RegularExpressionValidator ID="regOuttime" runat="server" ControlToValidate="txtOutTime"
ErrorMessage="Please enter time in correct format" ValidationExpression="^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblTotalHr" runat="server" Text="Total Hours" Visible="true"></asp:Label>
<asp:TextBox ID="txtTotalHrs" runat="server" Width="70" ReadOnly="true" onkeyUp="TimeCalculation();">
</asp:TextBox>
</td>
</tr>
JAVASCRIPT
function TimeCalculation() {
var start = $('#txtInTime').val();
var end = $('#txtOutTime').val();
var diff = new Date(end - start);
$('#txtTotalHrs').val(diff);
}
但问题是,我在 thid 文本框中遇到错误
Invalid Date.
注意 我的日期格式是 HH:MM 和 24 小时格式
不对的地方请指出
要从结束中减去开始,您必须先将它们都转换为日期。
更改您的 JavaScript 函数:
function TimeCalculation()
var start = $('#txtInTime').val();
var startHours = parseInt(start.split(":")[0]);
var startMins = parseInt(start.split(":")[1]);
var end = $('#txtOutTime').val();
var endHours = parseInt(end.split(":")[0]);
var endMins = parseInt(end.split(":")[1]);
var diffHours = endHours - startHours;
var diffMins = endMins - startMins;
diffHours = ("0" + diffHours).slice(-2);
diffMins = ("0" + diffMins).slice(-2);
var diff = diffHours + ":" + diffMins;
$('#txtTotalHrs').val(diff);
}
我有一个场景,我想在计算前两个文本框的 InTime
和 OutTime
后显示员工的总时间。
这是场景,
In first textbox
用户将添加 INTIME
In Second textbox
用户将添加 OUTTIME
.
输入这两个值后,第三个文本框将显示员工的总工作时间。
这是我试过的。
HTML
<tr>
<td>
<asp:Label ID="lblInTime" runat="server" Text="In Time" Visible="true"></asp:Label>
<asp:TextBox ID="txtInTime" runat="server" Width="89px"></asp:TextBox> (HH:MM)
<asp:RegularExpressionValidator ID="regIntime" runat="server" ControlToValidate="txtInTime"
ErrorMessage="Please enter time in correct format" ValidationExpression="^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblOutTime" runat="server" Text="Out Time" Visible="true"></asp:Label>
<asp:TextBox ID="txtOutTime" runat="server" onkeyup="sum();" Width="89">
</asp:TextBox> (HH:MM)
<asp:RegularExpressionValidator ID="regOuttime" runat="server" ControlToValidate="txtOutTime"
ErrorMessage="Please enter time in correct format" ValidationExpression="^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td>
<asp:Label ID="lblTotalHr" runat="server" Text="Total Hours" Visible="true"></asp:Label>
<asp:TextBox ID="txtTotalHrs" runat="server" Width="70" ReadOnly="true" onkeyUp="TimeCalculation();">
</asp:TextBox>
</td>
</tr>
JAVASCRIPT
function TimeCalculation() {
var start = $('#txtInTime').val();
var end = $('#txtOutTime').val();
var diff = new Date(end - start);
$('#txtTotalHrs').val(diff);
}
但问题是,我在 thid 文本框中遇到错误
Invalid Date.
注意 我的日期格式是 HH:MM 和 24 小时格式
不对的地方请指出
要从结束中减去开始,您必须先将它们都转换为日期。
更改您的 JavaScript 函数:
function TimeCalculation()
var start = $('#txtInTime').val();
var startHours = parseInt(start.split(":")[0]);
var startMins = parseInt(start.split(":")[1]);
var end = $('#txtOutTime').val();
var endHours = parseInt(end.split(":")[0]);
var endMins = parseInt(end.split(":")[1]);
var diffHours = endHours - startHours;
var diffMins = endMins - startMins;
diffHours = ("0" + diffHours).slice(-2);
diffMins = ("0" + diffMins).slice(-2);
var diff = diffHours + ":" + diffMins;
$('#txtTotalHrs').val(diff);
}