moment.js"invalid date"计算时间差
moment.js "invalid date" calculating time difference
我正在尝试计算 2 个表单字段之间的时差(以小时和分钟为单位),但返回 "Invalid Date"。我尝试使用其他示例并使它们能够满足我的需要。输入用于开始和结束字段。
<script type="text/javascript" src="/js/moment.js"></script>
<script type="text/javascript">
function calculate(){
var start = document.getElementById(StartTime);
var end = document.getElementById(EndTime);
var diff = moment.utc(moment(end,"HH:mm").diff(moment(start,"HH:mm"))).format("HH:mm")
document.form.total.value = diff;
}
</script>
<form method="POST" name="form" id="form" action="test2.php">
<?php
echo "time1: <input type='text' name='StartTime' id='StartTime' onChange='calculate()'/> <br />";
echo "time2: <input type='text' name='EndTime' id='EndTime' onChange='calculate()' /> <br />";
echo "difference: <input type='text' name='total' id='total' /> <br /> ";
echo "<Br />";
?>
</form>
谢谢
请看下面的代码:
<html>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.4/moment.min.js"></script>
<script type="text/javascript">
function calculate(){
var start = document.getElementById("startTime").value;
var end = document.getElementById("endTime").value;
var formatStr = "HH:mm";
var diff = moment.utc(moment(end, formatStr).diff(moment(start, formatStr)));
document.getElementById("total").innerHTML = diff.format(formatStr);
}
</script>
<input type='text' id='startTime' onChange='calculate()'/>
<input type='text' id='endTime' onChange='calculate()' />
<div id='total' />
</html>
我删除了 php 代码,因为调试它没有用,而且问题无关。
请注意,您需要使用 .value
.
获取输入值
我正在尝试计算 2 个表单字段之间的时差(以小时和分钟为单位),但返回 "Invalid Date"。我尝试使用其他示例并使它们能够满足我的需要。输入用于开始和结束字段。
<script type="text/javascript" src="/js/moment.js"></script>
<script type="text/javascript">
function calculate(){
var start = document.getElementById(StartTime);
var end = document.getElementById(EndTime);
var diff = moment.utc(moment(end,"HH:mm").diff(moment(start,"HH:mm"))).format("HH:mm")
document.form.total.value = diff;
}
</script>
<form method="POST" name="form" id="form" action="test2.php">
<?php
echo "time1: <input type='text' name='StartTime' id='StartTime' onChange='calculate()'/> <br />";
echo "time2: <input type='text' name='EndTime' id='EndTime' onChange='calculate()' /> <br />";
echo "difference: <input type='text' name='total' id='total' /> <br /> ";
echo "<Br />";
?>
</form>
谢谢
请看下面的代码:
<html>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.4/moment.min.js"></script>
<script type="text/javascript">
function calculate(){
var start = document.getElementById("startTime").value;
var end = document.getElementById("endTime").value;
var formatStr = "HH:mm";
var diff = moment.utc(moment(end, formatStr).diff(moment(start, formatStr)));
document.getElementById("total").innerHTML = diff.format(formatStr);
}
</script>
<input type='text' id='startTime' onChange='calculate()'/>
<input type='text' id='endTime' onChange='calculate()' />
<div id='total' />
</html>
我删除了 php 代码,因为调试它没有用,而且问题无关。
请注意,您需要使用 .value
.