javascript - 如何使用 javascript 将小时转换为 12 HRS/24 HRS 格式

标签 javascript c#

我在 c# 中以这种方式将 Hour 转换为 12 HRS/24 HRS 格式,但无法在 javascript 中执行相同的操作。

我的 c# 代码用于格式化 12 HRS/24 HRS 格式如下

for (int i = 0; i <= 15; i++)
{
    strHrs.Add((i == 0 ? "00" : Convert.ToDateTime(TimeSpan.FromHours(i).ToString()).ToString("hh")),
        (i == 0 ? "00" : Convert.ToDateTime(TimeSpan.FromHours(i).ToString()).ToString("HH")));
}

我得到了一个看起来不错的js代码

var timeString = "18:00:00";
var H = +timeString.substr(0, 2);
var h = H % 12 || 12;
var ampm = H < 12 ? "AM" : "PM";
timeString = h + timeString.substr(2, 3) + ampm;

我必须在下拉文本中显示 12 小时格式,但必须在下拉值中显示 24 小时格式。
但我不太确定如何申请。所以任何帮助将不胜感激。谢谢

编辑

        function convertDateTo12Hrs(timeStr, is24) {
            if (is24) {
                var BigHrs = timeStr.toString().length == 1 ? "0" + timeStr : timeStr;
                return BigHrs; // return if is24 true
            }
            var h = "" + (+timeStr > 12 ? timeStr - 12 : timeStr);
            return h.length == 1 ? "0" + h : h;
        }

打电话

convert("2", true); // "02"
convert("18", false); // "06"

最佳答案

根据您对我的帖子的评论,您可以创建一个返回两者的函数。

function convert(timeStr, is24) {
    if (is24) return timeStr; // return if is24 true
    var h = "" + (+timeStr  > 12 ? timeStr - 12 : timeStr);
    return h.length == 1 ? "0" + h : h;
}

现在你可以这样调用它了

convert("18", true); // "18"
convert("18", false); // "06"

关于javascript - 如何使用 javascript 将小时转换为 12 HRS/24 HRS 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27500779/

相关文章:

javascript - jqGrid:固定行

c# - 使用 Angular 通过 Ajax 下载文件

javascript - 按值更改字体颜色

javascript - 显示缓存中存储的内容

c# - WPF :Material Design + dragablz tabItem header style

c# - 我可以限制我的 C# 应用程序的 I/O

c# - 合并的 ObservableCollection

c# - Aspnetcore 2.2 针对 .Net Framework,InProcess 在 azure 应用程序服务上失败,并出现错误 TTP 错误 500.0 - ANCM 进程内处理程序加载失败

javascript - 如何使用 jQuery 选择下一个 div?

javascript - 脚本影响所有div,我怎样才能让它只影响一个?