如何将其从 12 小时制更改为 24 小时制

How do i change this from 12-hours clock to 24-hours clock?

本文关键字:小时      更新时间:2023-09-26

我正在尝试在网站上显示营业时间,但我无法将其转换为 24 小时制系统 - 我该更改什么才能实现它?

Cut off code ^
var checkTime = function() {
  var today = weekday[now.getDay()];
  var timeDiv = document.getElementById('timeDiv');
  var dayOfWeek = now.getDay();
  var hour = now.getHours();
  var minutes = now.getMinutes();
  //add AM or PM
  var suffix = hour >= 12 ? "PM" : "AM";
  // add 0 to one digit minutes
  if (minutes < 10) {
    minutes = "0" + minutes
  };
  if ((dayOfWeek == 0 || dayOfWeek == 6) && hour >= 13 && hour <= 23) {
    hour = ((hour + 11) % 12 + 1); //i.e. show 1:15 instead of 13:15
    timeDiv.innerHTML = 'it''s ' + today + ' ' + hour + ':' + minutes + suffix + ' - we''re open!';
    timeDiv.className = 'open';
  } else if ((dayOfWeek == 3 || dayOfWeek == 4 || dayOfWeek == 5) && hour >= 16 && hour <= 23) {
    hour = ((hour + 11) % 12 + 1);
    timeDiv.innerHTML = 'it''s ' + today + ' ' + hour + ':' + minutes + suffix + ' - we''re open!';
    timeDiv.className = 'open';
  } else {
    if (hour == 0 || hour > 12) {
      hour = ((hour + 11) % 12 + 1); //i.e. show 1:15 instead of 13:15
    }
    timeDiv.innerHTML = 'It''s ' + today + ' ' + hour + ':' + minutes + suffix + ' - we''re closed!';
    timeDiv.className = 'closed';
  }
};
var currentDay = weekday[now.getDay()];
var currentDayID = "#" + currentDay; //gets todays weekday and turns it into id
$(currentDayID).toggleClass("today"); //hightlights today in the view hours modal popup
setInterval(checkTime, 1000);
checkTime();

提前谢谢。

试试这个...

// Pad leading zero if number is < 10
function padZero(i){
  return i < 10 
    ? "0" + i 
    : i;
}
// Construct time string
function formatTime(day, hours, minutes, suffix, state){
  return "It's " + today + " " + padZero(hours) + ":" + padZero(minutes) + suffix + " - we're " + state + "!";
}
// Output time to screen
function checkTime() {
  var today = weekday[now.getDay()];
  var timeDiv = document.getElementById('timeDiv');
  var dayOfWeek = now.getDay();
  var hour = now.getHours();
  var minutes = now.getMinutes();
  //add AM or PM
  //var suffix = hour >= 12 ? "PM" : "AM";
  var suffix = "";
  if ((dayOfWeek == 0 || dayOfWeek == 6) && hour >= 13 && hour <= 23) {
    //hour = ((hour + 11) % 12 + 1); //i.e. show 1:15 instead of 13:15
    timeDiv.innerHTML = formatTime(today, hour, minutes, suffix, "open");
    timeDiv.className = 'open';
  } else if ((dayOfWeek == 3 || dayOfWeek == 4 || dayOfWeek == 5) && hour >= 16 && hour <= 23) {
    //hour = ((hour + 11) % 12 + 1);
    timeDiv.innerHTML = formatTime(today, hour, minutes, suffix, "open");
    timeDiv.className = 'open';
  } else {
    /*if (hour == 0 || hour > 12) {
      hour = ((hour + 11) % 12 + 1); //i.e. show 1:15 instead of 13:15
    }*/
    timeDiv.innerHTML = formatTime(today, hour, minutes, suffix, "closed");
    timeDiv.className = 'closed';
  }
};

变化:

  • 注释掉了将 24h 转换为 12h 的 3 行
  • suffix设置为 "(如果需要,可以将其完全删除)
  • 将时间字符串的重复构建移动到它自己的函数formatTime()
  • 创建padZero()函数,以确保 10 以下的小时和分钟填充前导"0"。