You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用moment.js开发餐厅定时启停YouTube音乐网页遇逻辑失效问题求助

问题修复方案

首先梳理现有代码的核心问题,对应修复即可:

  • 运算符使用错误:if判断逻辑中误用赋值运算符=,没有使用比较运算符===做条件判断,导致逻辑直接改写变量值而非做匹配校验
  • 时间未实时更新:定义的timetime变量仅在页面加载时获取了一次初始时间,后续不会自动同步最新时间,判断逻辑永远用初始值做匹配
  • 校验函数未触发:checktime函数仅做了定义,没有在定时器的执行逻辑中被调用,校验逻辑永远不会运行
  • 定时器未配置间隔:setInterval没有传入第二个时间间隔参数,会导致逻辑无意义高频执行
  • 缺少播放状态标记:没有记录当前播放状态,会导致到达开始时间后每秒重复给iframe赋值src,造成视频反复刷新无法正常播放
修复后可运行代码

JavaScript代码

var curtime = document.querySelector('#curtime')
var starttime = "11:57"
var stoptime = "11:58"
var video = document.querySelector("#ytplayer")
// 新增播放状态标记,避免重复操作
var isPlaying = false

// 定时器设置每秒执行一次,同步时间+校验播放逻辑
setInterval(function(){
    var currentTimeFull = moment().format("HH:mm:ss");
    curtime.textContent = currentTimeFull;
    // 取当前时间的小时+分钟,和配置的时间格式统一
    var currentTimeHM = moment().format("HH:mm");
    checktime(currentTimeHM);
}, 1000);

function checktime (currentTimeHM){
    // 到达开始时间且未播放时加载播放链接
    if (currentTimeHM === starttime && !isPlaying){
        video.src = 'https://www.youtube.com/embed/Dx5qFachd3A?autoplay=1'
        isPlaying = true
    }
    // 到达结束时间且正在播放时清空链接
    if (currentTimeHM === stoptime && isPlaying){
        video.src = ''
        isPlaying = false
    }
}

HTML代码优化说明

现有HTML代码仅需删除head部分重复引入的moment.js即可,其余部分无需调整:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="./assets/CSS/style.css">
    <title>Music</title>
</head>
<body>
    <header>
        <div class="time">
            <span id="curtime"></span>
        </div>
    </header>
    <main>
        <section>
            <iframe id="ytplayer" type="text/html" width="720" height="405"
            src=""
            frameborder="0" allowfullscreen></iframe>
        </section>
    </main>
</body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
<script src="./assets/JS/main.js"></script>
</html>

内容的提问来源于stack exchange,提问作者Faizan Ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 20:15:04