【问题标题】:Formatting ISO 8601 time into Laravel view将 ISO 8601 时间格式化为 Laravel 视图
【发布时间】:2016-05-07 19:27:37
【问题描述】:

我正在开发 Halo 5 API,我正在为比赛中的每位玩家争取时间。所以当我抽出上场比赛的时间时,我得到了这个。

PT8M10.9525157S

我已经读到我可以使用 momentJS 库

所以我用它来减少我玩的时间是这样的:

<script src="{{  URL::asset('/src/public/js/plugins/moment.js') }}"></script>
<script src="{{  URL::asset('/src/public/js/plugins/jquery.js') }}"></script>


    <script>
        var played = moment.duration('{{ $ArenaLastGameTimePlayed }}'); //PT8M10.9525157S
        //console.log(played);
        $("#time").append( "<b>" + played + "</b>");
    </script>

当我 console.log 时,我得到了这个,这似乎是正确的:

但是当我将它附加到我的 div 中的 #time id 时,我得到以下结果:

490952.5157

我怎样才能把它变成这样的东西:(小时,分钟,秒)

/**************** 回答*********************/

感谢下面的回答,我就是这样做的。

 <script>
        //var string = played.humanize();
        //var string = played.hours() + ' hours, ' + played.minutes() + ' minutes' + played.seconds() + ' seconds';
        var played = moment.duration('{{ $ArenaLastGameTimePlayed }}'); //PT8M10.9525157S
        $("#time").append( "Lasted: " + played.minutes() + ':' + played.seconds() + ' minutes');
</script>

【问题讨论】:

    标签: javascript php laravel time momentjs


    【解决方案1】:

    您可以使用 momentjs humanize() 函数,该函数将输出类似 a minute 的值。使用方法如下:

    var string = played.humanize();
    

    但您也可以使用seconds()minutes()hours() 方法来显示小时、分钟和秒以随意格式化:

    var string = played.hours() + ' hours, ' + played.minutes() + ' minutes' + played.seconds() + ' seconds';
    

    因此,您使用其中之一的完整代码将是:

    <script>
        var played = moment.duration('{{ $ArenaLastGameTimePlayed }}'); //PT8M10.9525157S
        //console.log(played);
        $("#time").append( "<b>" + played.humanize() + "</b>");
    </script>
    

    这里有更多关于在 momentjs 中可以使用哪些方法的文档:http://momentjs.com/docs/#/durations/

    我希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-11-16
      • 1970-01-01
      • 1970-01-01
      • 2014-08-04
      • 1970-01-01
      • 2020-11-23
      相关资源
      最近更新 更多