返回课程

距离明天还有多少秒?

重要性: 5

创建一个名为 getSecondsToTomorrow() 的函数,该函数返回距离明天还有多少秒。

例如,如果现在是 23:00,那么

getSecondsToTomorrow() == 3600

注意:该函数应该在任何一天都起作用,不要硬编码“今天”。

要获取距离明天还有多少毫秒,我们可以从“明天 00:00:00”减去当前日期。

首先,我们生成“明天”,然后进行操作

function getSecondsToTomorrow() {
  let now = new Date();

  // tomorrow date
  let tomorrow = new Date(now.getFullYear(), now.getMonth(), now.getDate()+1);

  let diff = tomorrow - now; // difference in ms
  return Math.round(diff / 1000); // convert to seconds
}

另一种解决方案

function getSecondsToTomorrow() {
  let now = new Date();
  let hour = now.getHours();
  let minutes = now.getMinutes();
  let seconds = now.getSeconds();
  let totalSecondsToday = (hour * 60 + minutes) * 60 + seconds;
  let totalSecondsInADay = 86400;

  return totalSecondsInADay - totalSecondsToday;
}

请注意,许多国家/地区有夏令时 (DST),因此可能会有 23 或 25 小时的日子。我们可能需要分别处理这些日子。