【问题标题】:Display business opening hours in 12 hour format (9am - 6pm) instead of 24 hours以 12 小时格式(上午 9 点至下午 6 点)而非 24 小时显示营业时间
【发布时间】:2019-04-12 21:30:30
【问题描述】:

我的目标是显示我的营业时间并指示我们何时关闭。

codepen 上查看我想要的示例。但这是 24 小时格式。我需要帮助将 javascript 转换为以 12 小时格式显示日期。

以下是显示 24 小时营业时间的 javascript。

jQuery(document).ready(function($){

        var currentDate = new Date();
        var weekday = [];
        weekday[0] = "Sunday";
        weekday[1] = "Monday";
        weekday[2] = "Tuesday";
        weekday[3] = "Wednesday";
        weekday[4] = "Thursday";
        weekday[5] = "Friday";
        weekday[6] = "Saturday";

        var currentDay = weekday[currentDate.getDay()];

        var currentTimeHours = currentDate.getHours();
        currentTimeHours = currentTimeHours < 10 ? "0" + currentTimeHours : currentTimeHours;
        var currentTimeMinutes = currentDate.getMinutes();
        var timeNow = currentTimeHours + "" + currentTimeMinutes;

        var currentDayID = "#" + currentDay; //gets todays weekday and turns it into id
        $(currentDayID).toggleClass("today"); //this works at hightlighting today

        var openTimeSplit = $(currentDayID).children('.opens').text().split(":");

        var openTimeHours = openTimeSplit[0];
        openTimeHours = openTimeHours < 10 ? "0" + openTimeHours : openTimeHours;

        var openTimeMinutes = openTimeSplit[1];
        var openTimex = openTimeSplit[0] + openTimeSplit[1];

        var closeTimeSplit = $(currentDayID).children('.closes').text().split(":");

        var closeTimeHours = closeTimeSplit[0];
        closeTimeHours = closeTimeHours < 10 ? "0" + closeTimeHours : closeTimeHours;

        var closeTimeMinutes = closeTimeSplit[1];
        var closeTimex = closeTimeSplit[0] + closeTimeSplit[1];

        if (timeNow >= openTimex && timeNow <= closeTimex) {
            $(".openorclosed").toggleClass("open");
        } else {
            $(".openorclosed").toggleClass("closed");
        }
}); 

您可以在 codepen 上查看 24 小时格式的工作示例

提前感谢您的帮助和时间!

【问题讨论】:

标签: javascript jquery


【解决方案1】:

var currentTimeHours = currentDate.getHours();
currentTimeHours = currentTimeHours < 10 ? "0" + currentTimeHours : currentTimeHours;
var currentTimeMinutes = currentDate.getMinutes();
var timeNow = currentTimeHours + "" + currentTimeMinutes;


	Replace the above code by

var currentTimeHours = currentDate.getHours();
var currentTimeMinutes = currentDate.getMinutes();
var timeNow = currentTimeHours % 12 + ':' + currentTimeMinutes + ':'+ (currentTimeHours < 12 ? 'AM':'PM');
        

【讨论】:

  • 非常感谢@LDS,现在可以使用 12 小时格式,但是如果我同时输入小时和分钟,它就不起作用了。例如,中午 12 点 - 下午 6 点有效,但下午 12:30 - 晚上 9:50 无效。
  • 我观察到的是,代码只读取小时而不考虑分钟。如果我在下午 3:30 - 下午 6 点输入,即使现在还没有下午 3:30,但在下午 3:30 前几分钟(例如下午 3:20),它显示业务正在营业。我会很感激你帮我调查一下。非常感谢。
  • 好的,我正在看
猜你喜欢
  • 1970-01-01
  • 2019-10-19
  • 2015-06-02
  • 1970-01-01
  • 2012-01-10
  • 1970-01-01
  • 2012-02-23
  • 1970-01-01
  • 2012-03-20
相关资源
最近更新 更多