将时间00:30:20格式转换为字符串

时间:2015-07-02 10:07:26

标签: javascript jquery html

我有来自数据库的数据和视频持续时间的格式 00:05:20并希望它转换为5分20秒。

如果不存在小时,则不应该像0小时一样,只应该是5分20秒。

有moment.js但不想使用任何插件。

如何使用javascript或jQuery实现这一目标?

4 个答案:

答案 0 :(得分:4)

尝试:



function timeString(time){
  
  var timeExtract = /(\d+):(\d+):(\d+)/g.exec(time);
  var totalSeconds = +timeExtract[1] * 3600 + +timeExtract[2] * 60 + +timeExtract[3];

  var result = [
    ["hour", totalSeconds/3600], 
    ["minute", totalSeconds/60], 
    ["second", totalSeconds]
  ];

  return result.map(function(timer){
    var str = timer[0], value = timer[1] | 0, left = value % 60;
    return value > 0 ? value > 1 ? left + " " + str + "s" : left + " " + str : ""
  }).join(" ")
}

document.write(timeString("00:00:20") + "<br>")
document.write(timeString("00:05:20") + "<br>")
document.write(timeString("01:05:20") + "<br>")
&#13;
&#13;
&#13;

答案 1 :(得分:1)

此功能可以帮助您:

function stringify (time) { 
   var result = '';
   var date = time.split(':').map(Number);

   result += date[0] ? (date[0] + ' hours ') : ('');
   result += date[1] ? (date[1] + ' miutes ') : ('');
   result += date[2] ? (date[2] + ' seconds ') : ('');

   return result;
}

stringify('00:05:20'); // "5 miutes 20 seconds "
stringify('03:05:20'); // "3 hours 5 miutes 20 seconds "

答案 2 :(得分:0)

也许你可以在secondes中转换你的时间并使用这个函数来做:

    alert(secondsToHms("00:05:20"));
  function secondsToHms(time) {
        var timeExtract = /(\d+):(\d+):(\d+)/g.exec(time);

        d = Number(timeExtract[1] * 3600 + timeExtract[2] * 60 + timeExtract[3]);
        var h = Math.floor(d / 3600);
        var m = Math.floor(d % 3600 / 60);
        var s = Math.floor(d % 3600 % 60);
        return ((h > 0 ? h + " hours " + (m < 10 ? "0" : "") : "") + m + " minutes " + (s < 10 ? "0" : "") + s); }

答案 3 :(得分:0)

你可以试试这个:

&#13;
&#13;
var time = "00:05:20";
var regex = /(\d{1,2}):(\d{1,2}):(\d{1,2})/g;
var timeString = time.replace(regex, "$1 Hours $2 Minutes $3 Seconds")
alert(timeString);
&#13;
&#13;
&#13;