Javascript:如何以毫秒为单位将时间显示为天:小时:分钟

Javascript: How to show time in milliseconds as days: hours: min?

本文关键字:显示 时间 小时 分钟 为单位 Javascript      更新时间:2023-09-26

我在这里看到的关于这个问题的帖子很少,但我找不到我的情况。所以我有一个有三列的表格,上面写着 A、B 和 C 列,其中 A 和 B 包含"3/9/2016 4:28:42 PM"形式的日期。C 列是 A 列和 B 列的差值。我得到了差异,但以毫秒为单位。我需要以天为单位的列的每条记录:小时:分钟格式。我看过一篇 Javascript 帖子将毫秒显示为没有秒的 days:hours:mins,但无法在我的循环中实现。这是我正在开发的JavaScript。我该怎么做?

    ' SQL = some statements
    <script>
        $(function() {
            ShowDifference();
            ShowAverage();
        });
         function ShowDifference() {
            var assigned; 
            var completed;
            var difference;
            $('#tbl tr').each(function() {
            assigned = new Date($(this).find('.assigned').html())
            completed = new Date($(this).find('.completed').html())
            difference = completed - assigned;
               // $(this).find('.difference').html(difference/1000/60/60);
            $(this).find('.difference').html(difference);
            });
        }
        function ShowAverage() {
           var difference = Number(0);
           var countRows = Number(0);
           var average;
           $('#tbl tr .difference').each(function() {
               countRows = ($(this).html() !== '') ? countRows + 1 : countRows;
               difference += Number($(this).html());
           });
           average = Number(difference / countRows);
           $("#tbla #average").html(average);
           }
    </script>        

转换为秒(除以 1000),然后转换为小时(除以 3600),余数除以 60 得到分钟。

所有计算都是在总秒数上进行的,因此在评论中我描述了用于计算的内容

function ShowDifference() {
    var assigned; 
    var completed;
    var difference;
    $('#tbl tr').each(function() {
        assigned = new Date($(this).find('.assigned').html())
        completed = new Date($(this).find('.completed').html())
        difference = completed - assigned;
        var totalSeconds = difference / 1000;
        var days = Math.floor(totalSeconds / 86400); // 86400 = 24 hours * 60 minutes * 60 seconds per day
        var hours = Math.floor((totalSeconds % 86400) / 3600); // 3600 = 60 minutes * 60 seconds per day
        var minutes = Math.floor((totalSeconds % 3600) / 60); // 60 = 60 seconds per minute
        // $(this).find('.difference').html(difference/1000/60/60);
        $(this).find('.difference').html(days + ":" + hours + ':' + minutes);
    });
}

只需将1439198499放在您的difference中即可。

这是jsfiddle

链接:jsfiddle

我使用控制台进行输出。

试试这个:

var date = new Date(1439198499*1000);
// Days part from the timestamp
var days = date.getDay();
// Hours part from the timestamp
var hours = date.getHours();
// Minutes part from the timestamp
var minutes = "0" + date.getMinutes();

// Will display time in 10:30:23 format
var formattedTime = days + ':' + hours + ':' + minutes.substr(-2);
console.log(formattedTime);

输出

1:15:21