javascript - 如何在此函数中使用 getMinutes 而不是 getHours
问题描述
我正在尝试设置一个 Livestream 计划应用程序,该应用程序会根据一天中的时间每 30 分钟自动更改 css 文件并突出显示当前正在运行的程序。
目前该功能运行良好。我的问题是函数以小时为单位(getHours),这意味着 CSS 文件更改是每小时一次。
由于程序只有 30 分钟,如何将功能更改为每半小时工作一次?我尝试使用 getMinutes 但没有运气。
// Program Schedule highlighter
function getStylesheet() {
var currentHour = new Date().getHours();
if (11 <= currentHour&¤tHour < 12) {
document.write("<link rel='stylesheet' href='600.css' type='text/css'>");
}
if (12<= currentHour&¤tHour < 13) {
document.write("<link rel='stylesheet' href='630.css' type='text/css'>");
}
if (13 <= currentHour&¤tHour < 14) {
document.write("<link rel='stylesheet' href='700.css' type='text/css'>");
}
if (14 <= currentHour&¤tHour < 15) {
document.write("<link rel='stylesheet' href='730.css' type='text/css'>");
}
if (15 <= currentHour&¤tHour < 16) {
document.write("<link rel='stylesheet' href='800.css' type='text/css'>");
}
if (16 <= currentHour&¤tHour < 17) {
document.write("<link rel='stylesheet' href='830.css' type='text/css'>");
}
}
getStylesheet();
</script>
</head>
<h2 align="center">Line up</h2>
<table align="center" width="80%" max-width="300px">
<tr>
<th>Time</th>
<th>Program</th>
</tr>
<tr>
<td>6.00PM</td>
<td>Maria Anders</td>
</tr>
<tr>
<td>7.00PM</td>
<td>Francisco Chang</td>
</tr>
<tr>
<td>8.00PM</td>
<td>Roland Mendel</td>
</tr>
<tr>
<td>9.00PM</td>
<td>Helen Bennett</td>
</tr>
<tr>
<td>10.00PM</td>
<td>Yoshi Tannamuri</td>
</tr>
<tr>
<td>11.00PM</td>
<td>Giovanni Rovelli</td>
</tr>
<tr>
<td>12.00AM</td>
<td>Gio Roeli</td>
</tr>
<tr>
<td>1.00AM</td>
<td>Chester Band</td>
</tr>
<tr>
<td>2.00AM</td>
<td>Lionel Rolex</td>
</tr>
<tr>
<td>3.00AM</td>
<td>Smith Weston</td>
</tr>
<tr>
<td>4.00AM</td>
<td>Jasper Beaver</td>
</tr>
<tr>
<td>5.00AM</td>
<td>Smiler Torres</td>
</tr>
<tr>
<td>6.00AM</td>
<td>John Tobres</td>
</tr>
</table>
</body>
</html>
解决方案
为什么不只是为您所追求的时间制定一个配置/时间表并提供样式表呢?
我没有配置完整的 24 小时,但您应该明白这一点。如果您不打算覆盖所有 24 小时,我至少会放入某种后备样式表。
const sheets = [
{ start: 1100, end: 1129 , sheet: 'one.css' },
{ start: 1130, end: 1159 , sheet: 'two.css' },
{ start: 1200, end: 1229 , sheet: 'three.css' },
{ start: 1230, end: 1259 , sheet: 'four.css' },
{ start: 1300, end: 1329 , sheet: 'five.css' },
{ start: 1330, end: 1359 , sheet: 'six.css' },
{ start: 1400, end: 1429 , sheet: 'seven.css' },
{ start: 1430, end: 1459 , sheet: 'eight.css' },
{ start: 1500, end: 1529 , sheet: 'nine.css' },
{ start: 1530, end: 1559 , sheet: 'ten.css' }
];
const getStyleSheet = () => {
const date = new Date();
const time = +`${date.getHours()}${date.getMinutes()}`;
const sheet = sheets.find( s => s.start <= time && s.end >= time );
return sheet ? sheet.sheet : 'outside of time range';
};
console.log(getStyleSheet());
setInterval
如果页面只是坐在那里并运行很长时间,则另一个建议是使用。您可以将该间隔设置为每 30 分钟“滴答”一次,然后换出样式表。你仍然需要某种映射time
到style sheet
推荐阅读
- c# - I want to spawn my zombies in my game at a random location but I want to make sure to not spawn the inside the buildings
- windows - ansible win_replace module is missing
- python - Python Spyder 5.0.0“重新加载模块”错误
- javascript - Webpack 4, watch folders outside file structure
- visual-studio-code - VSCode–Codestream Extension: Add code range link to Codestream comment thread
- c# - 无法启动进程 dotnet.exe - 输入或输出无法重定向,因为指定的文件无效
- javascript - jQuery Scroll up/down animations blocking
- python - "ModuleNotFound: no module named pynput" when running PyCharm project from CMD?
- oauth - How implement jira nestjs aplplication?
- python - is there a way to find the average between certain consecutive rows?