JavaScript 使用用户的时间(以秒为单位)显示消息

我有一个包含 5000 个文本字符串的列表,并且我为每个字符串分配了一个时间(在 0-86400 秒之间)


我想获取用户的当前时间并显示相应的文本字符串,然后在用户的时间发生变化时更新显示的文本以匹配下一个文本字符串等等...


我对 JavaScript 很陌生,所以我不确定这是否是最好的解决方案,但我有使用两个数组的想法,一个存储文本字符串,另一个存储时间。该代码可以从“时间”数组中找到正确的时间,然后显示具有来自另一个数组的相同索引的文本字符串。如果用户的当前时间介于两个值之间,则应选择第一个值。


例如:


var interval = [0, 1728, 3456, 5184, 6912, 8640, 10368, 12096, 13824, 15552,

17280, 19008, 20736, 22464, 24192, 25920, 27648, 29376, 31104, 32832,

34560, 36288, 38016, 39744, 41472, 43200, 44928, 46656, 48384, 50112,

51840, 53568, 55296, 57024, 58752, 60480, 62208, 63936, 65664, 67392,

69120, 70848, 72576, 74304, 76032, 77760, 79488, 81216, 82944, 84672];


var textstring = ["Verse 1", "Verse 2", "Verse 3", "Verse 4", "Verse 5", "Verse 6", "Verse 7", "Verse 8", "Verse 9", "Verse 10",

"Verse 11", "Verse 12", "Verse 13", "Verse 14", "Verse 15", "Verse 16", "Verse 17", "Verse 18", "Verse 19", "Verse 20",

"Verse 21", "Verse 22", "Verse 23", "Verse 24", "Verse 25", "Verse 26", "Verse 27", "Verse 28", "Verse 29", "Verse 30",

"Verse 31", "Verse 32", "Verse 33", "Verse 34", "Verse 35", "Verse 36", "Verse 37", "Verse 38", "Verse 39", "Verse 40",

"Verse 41", "Verse 42", "Verse 43", "Verse 44", "Verse 45", "Verse 46", "Verse 47", "Verse 48", "Verse 49", "Verse 50"];


function displayverse() {

    var now = new Date();

    var hour = now.getHours();

    var minute = now.getMinutes();

    var second = now.getSeconds();

    var currenttime = (hour * 3600) + (minute * 60) + second;


    for (var i = 0; i < interval.length; i++) {

        if (currenttime >= interval[i][0] && currenttime < interval[i][1]) {

            document.getElementById('verse').innerHTML = textstring[i][0];

        }

    }

}



我当前的代码不起作用。我认为我写的'if'语句是不正确的。有人对我做错了什么有任何想法吗?


这是我当前的代码:https ://jsfiddle.net/wrgt1/9bs4eu5q/1/


慕少森
浏览 80回答 2
2回答

哈士奇WWW

在您的代码中:interval[i]不是数组,它已经是一个值,因此您正在undefined使用interval[i][0]or interval[i][1]。要获得价值,您只需要interval[i]第一个值和interval[i+1]第二个值。for (var i = 0; i < interval.length; i++) {&nbsp; &nbsp; if (currenttime >= interval[i] && currenttime < interval[i+1]) {&nbsp; &nbsp; &nbsp; &nbsp; document.getElementById('verse').innerHTML = textstring[i];&nbsp; &nbsp; }}

守候你守候我

这是修改后的小提琴,出现代码错误:https://jsfiddle.net/ujfpy47a/修改后的代码:&nbsp; &nbsp; &nbsp;for (var i = 0; i < interval.length; i++) {&nbsp; &nbsp; &nbsp; &nbsp; if (currenttime >= interval[i] && currenttime < interval[i+1]) {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; document.getElementById('verse').innerHTML = textstring[i];&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript