asp:textbox与Javascript的时差;onchange";

asp:textbox与Javascript的时差;onchange";,javascript,c#,asp.net,Javascript,C#,Asp.net,这里我需要一些帮助,我的表单中有三个,我需要计算其中两个之间的时间差(并在第三个上设置差值) 我已经用回发完成了,它工作得很好,但我想从客户端完成(不需要回发)。这就是为什么我想知道是否有方法进行计算并用javascript在第三个文本框中显示值 有时我需要计算两个不同日期之间的时差。但是我不能在文本框中设置“日期” 我需要的格式是“HH:mm” 有人能帮我吗 编辑(代码添加): ASPX: C#: if(IsPostBack) { //检查该字段是否为空。如果为空,则流程不会启动。 如果(

这里我需要一些帮助,我的表单中有三个
,我需要计算其中两个之间的时间差(并在第三个上设置差值)

我已经用回发完成了,它工作得很好,但我想从客户端完成(不需要回发)。这就是为什么我想知道是否有方法进行计算并用javascript在第三个文本框中显示值

有时我需要计算两个不同日期之间的时差。但是我不能在文本框中设置“日期”

我需要的格式是“HH:mm”

有人能帮我吗

编辑(代码添加): ASPX:


C#:

if(IsPostBack)
{
//检查该字段是否为空。如果为空,则流程不会启动。
如果(TBEnd1.Text!=“”)
{
DateTime Venticuatro1=DateTime.ParseExact(“23:59”,“HH:mm”,CultureInfo.InvariantCulture);
DateTime unminuto1=DateTime.ParseExact(“00:01”,“HH:mm”,CultureInfo.InvariantCulture);
日期时间inicio1;
inicio1=新的日期时间();
inicio1=DateTime.ParseExact(TBStart1.Text,“HH:mm”,CultureInfo.InvariantCulture);
日期时间fin1;
fin1=新的日期时间();
fin1=DateTime.ParseExact(TBEnd1.Text,“HH:mm”,CultureInfo.InvariantCulture);
//检查结束时间是否低于开始时间。这意味着间隔在两个不同的日期之间(例如:23:50到01:30)
如果(fin1

有些字段名是西班牙语的(Diferenceia、Duracointers等)。对此表示抱歉。

它应该类似于:

$('#TBEnd1').on('change',function() 
{
  var start_time = $('#TBStart1').val();
  var end_time = $('#TBEnd1').val();

  var diff =  new Date(end_time) - new Date( start_time);  



  $('#TBDuration1').val(diff);
}

下面的代码将获取文本格式的日期时间,并以小时和分钟为单位查找差异。我希望这将满足您的要求,或者至少将您推上正确的轨道

HTML

结果

2016-09-20 20:00:00

2016-09-23 20:31:00

时差:72:31

建议

Jquery提供了一种获取日期对象的简单方法“jQueryUIDateParser”,而不是像这样解析它,而是使用一个日期选择器


希望这有帮助,祝你好运最后,我找到了解决办法

我必须更改我的

代码如下: 脚本:

        function HourDifference() {

        start = document.getElementById("start").value;
        end = document.getElementById("end").value;

        startMinutes = parseInt(start.substr(3, 2));
        startHours = parseInt(start.substr(0, 2));
        endMinutes = parseInt(end.substr(3, 2));
        endHours = parseInt(end.substr(0, 2));

        minutesDiff = endMinutes - startMinutes;
        hoursDiff = endHours - startHours;

        if (minutesDiff < 0) {
            hoursDiff --;
            minutesDiff = 60 + minutesDiff;
        }

        if (minutesDiff < 10) {
            minutesDiff = "0" + minutesDiff;
        }

        if (hoursDiff < 0) {
            hoursDiff = 24 + hoursDiff;
        }

        hours = hoursDiff.toString();
        minutes = minutesDiff.toString();

        if (hours.length < 2) {
            hours = "0" + hours;
        }

        if (minutes.length < 2) {
            minutes = minutes + "0";
        }

        document.getElementById("difference").value = hours + ":" + minutes;
        }
函数时差(){
开始=document.getElementById(“开始”).value;
end=document.getElementById(“end”).value;
startMinutes=parseInt(start.substr(3,2));
startHours=parseInt(start.substr(0,2));
endMinutes=parseInt(end.substr(3,2));
endHours=parseInt(end.substr(0,2));
minutesDiff=endMinutes-startMinutes;
hoursDiff=结束小时-开始时间;
如果(分钟差<0){
时差--;
分钟差=60+分钟差;
}
如果(分钟差<10){
minutesDiff=“0”+minutesDiff;
}
如果(小时差<0){
hoursDiff=24+hoursDiff;
}
小时=hoursDiff.toString();
分钟=分钟差分toString();
如果(小时长度<2){
小时数=“0”+小时数;
}
如果(分钟长度<2){
分钟数=分钟数+0;
}
document.getElementById(“差异”)。值=小时+“:”+分钟;
}
HTML:

这工作正常

重要:
输入格式应为“HH:mm”(如果上午1:00,则为01:00;如果下午1:00,则为13:00)。

显示您的代码。您尝试了什么?此diff变量以毫秒为单位,因此您可能需要除以1000获得秒,我应该如何在文本框中实现它?最后一行“$('#TBDuration1').val(diff);”应将结果差异分配给结果文本框“TBDuration1”我已经尝试将脚本设置到母版页中的。没有任何更改。我应该将其设置到aspx表单中吗?如果是,我该怎么做?哇,谢谢!我明天会检查它,并让您知道它是否有效。我尝试了但没有成功。我需要每天输入开始-结束时间,因此我不能使用具有特定值的。
$('#TBEnd1').on('change',function() 
{
  var start_time = $('#TBStart1').val();
  var end_time = $('#TBEnd1').val();

  var diff =  new Date(end_time) - new Date( start_time);  



  $('#TBDuration1').val(diff);
}
<div id="textBoxOne">
2016-09-20 20:00:00
</div>
<div id="textBoxTwo">
2016-09-23 20:31:00
</div>
<div id="ShowTimeBetweenDates">

</div> 
var dateOne = document.getElementById("textBoxOne").innerHTML;
var dateTwo = document.getElementById("textBoxTwo").innerHTML;
var diff =  (new Date(dateOne) - new Date(dateTwo))
var totalHours = Math.floor(Math.abs(diff/ 3600 / 1000));
var totalMinutes = Math.abs(((diff % 86400000) % 3600000) / 60000); 
var showTimeDiff = document.getElementById("ShowTimeBetweenDates");
showTimeDiff.innerHTML = "Time Diff : " + totalHours + " : " + totalMinutes;
        function HourDifference() {

        start = document.getElementById("start").value;
        end = document.getElementById("end").value;

        startMinutes = parseInt(start.substr(3, 2));
        startHours = parseInt(start.substr(0, 2));
        endMinutes = parseInt(end.substr(3, 2));
        endHours = parseInt(end.substr(0, 2));

        minutesDiff = endMinutes - startMinutes;
        hoursDiff = endHours - startHours;

        if (minutesDiff < 0) {
            hoursDiff --;
            minutesDiff = 60 + minutesDiff;
        }

        if (minutesDiff < 10) {
            minutesDiff = "0" + minutesDiff;
        }

        if (hoursDiff < 0) {
            hoursDiff = 24 + hoursDiff;
        }

        hours = hoursDiff.toString();
        minutes = minutesDiff.toString();

        if (hours.length < 2) {
            hours = "0" + hours;
        }

        if (minutes.length < 2) {
            minutes = minutes + "0";
        }

        document.getElementById("difference").value = hours + ":" + minutes;
        }
<p><input type="text" id="start" value=""/></p>

<p><input type="text" id="end" value="" onchange="HourDifference();" /></p>

<p><input type="text" id="difference" value="" /></p>