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

时间:2014-12-16 08:55:29

标签: javascript c#

我在c#中以这种方式将小时转换为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"

1 个答案:

答案 0 :(得分:1)

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

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"