|
70 | 70 | <div>点击间隔: ${clickInterval}ms</div> |
71 | 71 | <div>点击次数: ${clickNum}</div> |
72 | 72 | <div>定时运行时间: ${timingRunningTime || '未设定'}</div> |
| 73 | + <div id="_time">倒计时: <i>N</i></div> |
73 | 74 | </div> |
74 | 75 | `; |
75 | 76 |
|
@@ -267,7 +268,7 @@ try { |
267 | 268 | vConsole.showTab("default"); |
268 | 269 | |
269 | 270 | // 脚本2 |
270 | | - eval(function(){function c(){var d=document.getElementById(\"loadJs\"),e=document.createElement(\"script\");d&&document.getElementsByTagName(\"head\")[0].removeChild(d),e.id=\"loadJs\",e.type=\"text/javascript\",e.src=\"https://krapnik.cn/tools/JDCouponAssistant/bundle.js\",document.getElementsByTagName(\"head\")[0].appendChild(e)}c()}()) |
| 271 | + eval(function(){function c(){let d=document.getElementById(\"loadJs\"),e=document.createElement(\"script\");d&&document.getElementsByTagName(\"head\")[0].removeChild(d),e.id=\"loadJs\",e.type=\"text/javascript\",e.src=\"https://krapnik.cn/tools/JDCouponAssistant/bundle.js\",document.getElementsByTagName(\"head\")[0].appendChild(e)}c()}()) |
271 | 272 |
|
272 | 273 | }, |
273 | 274 | },{ |
@@ -374,8 +375,17 @@ try { |
374 | 375 | strDate = "0" + strDate; |
375 | 376 | } |
376 | 377 |
|
377 | | - let taskDate = date.getFullYear() + separator + nowMonth + separator + strDate + " " + date.getHours() + "${timingRunningTime}"; |
378 | | - let needTask = new Date(taskDate) >= new Date() ? true : false; |
| 378 | + let strHour = date.getHours(); |
| 379 | +
|
| 380 | + if (strHour >= 0 && strHour <= 9) { |
| 381 | + strHour = "0" + strHour; |
| 382 | + } |
| 383 | +
|
| 384 | + let taskDate = date.getFullYear() + separator + nowMonth + separator + strDate + " " + strHour + ":${timingRunningTime}"; |
| 385 | + let endTime = new Date(taskDate); |
| 386 | + let needTask = endTime >= new Date() ? true : false; |
| 387 | +
|
| 388 | + initializeClock('#_time i', new Date(Date.parse(endTime) + 1 * 60 * 60 * 1000)); |
379 | 389 |
|
380 | 390 | if (needTask) { |
381 | 391 | setTimeout(() => clickTask($clickDom), new Date(taskDate).getTime() - Date.now()); |
@@ -436,6 +446,41 @@ try { |
436 | 446 | $dom.removeAttribute('disabled'); |
437 | 447 | } |
438 | 448 | } |
| 449 | +
|
| 450 | + function getTimeRemaining(endTime) { |
| 451 | + const total = Date.parse(endTime) - Date.parse(new Date()); |
| 452 | + const seconds = Math.floor((total / 1000) % 60); |
| 453 | + const minutes = Math.floor((total / 1000 / 60) % 60); |
| 454 | + const hours = Math.floor((total / (1000 * 60 * 60)) % 24); |
| 455 | + const days = Math.floor(total / (1000 * 60 * 60 * 24)); |
| 456 | +
|
| 457 | + return { |
| 458 | + total, |
| 459 | + days, |
| 460 | + hours, |
| 461 | + minutes, |
| 462 | + seconds, |
| 463 | + }; |
| 464 | + } |
| 465 | +
|
| 466 | + function initializeClock(className, endTime) { |
| 467 | + const $dom = document.querySelector(className); |
| 468 | + let timeInterval; |
| 469 | +
|
| 470 | + function updateClock() { |
| 471 | + const t = getTimeRemaining(endTime); |
| 472 | +
|
| 473 | + if (t.total <= 0) { |
| 474 | + clearInterval(timeInterval); |
| 475 | + } else { |
| 476 | + $dom.textContent = ('0' + t.minutes).slice(-2) + ':' + ('0' + t.seconds).slice(-2); |
| 477 | + } |
| 478 | + } |
| 479 | +
|
| 480 | + updateClock(); |
| 481 | + timeInterval = setInterval(updateClock, 1000); |
| 482 | + } |
| 483 | + |
439 | 484 | </script> |
440 | 485 | </html> |
441 | 486 | `; |
|
0 commit comments