我正在为自己编写一个时钟程序,并想检查我是否已经进入。我想看看原始的html是否已经改变,因为我认为这比使用全局布尔变量更好。
我的HTML代码:
<h1 id="startTime">Start Time: </h1>
<h1 id="endTime">End Time: </h1>
<h1 id="totalHours">Total Hours: </h1>
<br>
<button class="button button1" onclick="hoursCalc()">clock in</button>
我的JS代码:
function hoursCalc() {
var d = new Date();
var h = d.getHours();
if (document.getelementByID === "Start Time: ")
document.getElementById("startTime").innerHTML += h;
else
document.getElementById("endTime").innerHTML += h;
};
我遇到问题的地方是使用if语句。由于这是正在显示的确切文本,我希望它将h附加到它。相反,它会跳到else语句并将其附加到结束时间。
答案 0 :(得分:0)
尝试:
var mousedragstart = mousedown.flatMap(() =>
mousemove
.where(x => x.movementX !== 0 || x.movementY !== 0)
.takeUntil(mouseup)
.take(1)
);
答案 1 :(得分:0)
你想要的是,可能是这样的:
function formatDate(date) {
return [
("0" + date.getHours()).slice(-2),
("0" + (date.getMinutes())).slice(-2),
("0" + (date.getSeconds())).slice(-2)
].join(':');
}
var startTime;
document.getElementById("myBtn").addEventListener("click", function() {
var d = new Date();
if (typeof startTime === "undefined") {
startTime = d;
document.getElementById("startTime").innerHTML = formatDate(d);
document.getElementById("endTime").innerHTML = '';
document.getElementById("totalSeconds").innerHTML = '';
} else {
document.getElementById("endTime").innerHTML = formatDate(d);
document.getElementById("totalSeconds").innerHTML = (d - startTime) / 1000;
startTime = undefined;
}
});
<h2>Start Time: <span id="startTime"></span></h2>
<h2>End Time: <span id="endTime"></span></h2>
<h2>Total Seconds: <span id="totalSeconds"></span></h2>
<button class="button button1" id="myBtn">clock in</button>
(另见this Fiddle)
对于我的演示,我计算了开始和结束时间之间的秒数而不是小时数,因为这在演示环境中更有意义。
如果您想要总数而不是总秒数,只需将秒数除以3600。