【问题标题】:Convert 24 hours time variable into 12Hours time with AngularJS/jQuery使用 AngularJS/jQuery 将 24 小时时间变量转换为 12 小时时间
【发布时间】:2017-01-14 23:52:07
【问题描述】:

我从数据库中获取了一个 24 小时时间字符串的值。 我正在寻找一种使用 angularJS 或 jQuery 将此字符串更改为 12 小时时钟时间的方法。

目前我无法对后端(JAVA)或数据库进行任何代码更改。

var offTime = "17:25:11";

我需要它显示为:"5:25:11"

请帮忙!

【问题讨论】:

  • 我会推荐Moment.js
  • 我也是,还有 angular-moment 指令:github.com/urish/angular-moment
  • MomentJs 非常棒,值得推荐。
  • 我不能在这里使用任何其他库。我只有 angular 和 jquery。

标签: javascript jquery angularjs


【解决方案1】:

根据 Kabb5 的回答,我添加了更多逻辑来确定 AM / PM 并检查 0,因此不能选择 0 AM。

angular.module('simpleAppFilters').filter('twentyFourToTwelve', function () {
return function (inputTime) {        
    inputTime = inputTime.toString(); //value to string for splitting
    var splitTime = inputTime.split(':');
    var ampm = (splitTime[0] >= 12 ? ' PM' : ' AM'); //determine AM or PM 
    splitTime[0] = splitTime[0] % 12;
    splitTime[0] = (splitTime[0] == 0 ? 12 : splitTime[0] ); //adjust for 0 = 12

    return splitTime.join(':') + ampm;
};
});

【讨论】:

    【解决方案2】:

    您需要将值按: 拆分,在通过模运算符运行第一个值后重建它。试试这个:

    var offTime = "17:25:11".split(':');
    offTime[0] = offTime[0] % 12;
    var output = offTime.join(':');
    
    alert(output);

    【讨论】:

    • 没问题,很乐意提供帮助。
    【解决方案3】:

    像这样创建一个过滤器:

    app.filter('twentyFourToTwelve ', function () {
      return function (inputTime) {
        var splitTime = inputTime.split(':');
        splitTime[0] = splitTime[0] % 12;
    
        return splitTime.join(':');        
      };
    });
    

    然后在你的绑定中:

    {{ myTime | twentyFourToTwelve }}
    

    【讨论】:

    • 谢谢,另一个干净的解决方案。
    猜你喜欢
    • 2012-04-09
    • 2013-10-14
    • 2017-06-27
    • 2012-12-01
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 2010-10-01
    • 2013-01-17
    相关资源
    最近更新 更多