Javascript:如何将时间(存储为分数)转换为可读字符串?

Javascript:如何将时间(存储为分数)转换为可读字符串?,javascript,time,formatting,Javascript,Time,Formatting,我将时间存储为分数(这样做可以在图表上显示),例如15.5是下午3点30分,23.25是晚上11点15分。我需要将这些数字转换成格式为HH:MM:SS的字符串。有没有一种简单的方法可以做到这一点 var分数=14.5; var小时=数学下限(分数);//提取小时数(24小时格式) var分钟=60*(分数-小时);//计算分钟数 t=新日期();//创建日期/时间对象 t、 设定时间(小时);//设定时间 t、 设置分钟数(分钟);//设定分钟 log(t.toTimeString())//显

我将时间存储为分数(这样做可以在图表上显示),例如15.5是下午3点30分,23.25是晚上11点15分。我需要将这些数字转换成格式为HH:MM:SS的字符串。有没有一种简单的方法可以做到这一点

var分数=14.5;
var小时=数学下限(分数);//提取小时数(24小时格式)
var分钟=60*(分数-小时);//计算分钟数
t=新日期();//创建日期/时间对象
t、 设定时间(小时);//设定时间
t、 设置分钟数(分钟);//设定分钟
log(t.toTimeString())//显示它
然后使用日期格式化脚本,例如,或者如果您不喜欢,则使用格式化和填充

date.format("HH:MM:ss"); // 23:30:00
。我正在使用中的格式化功能。

手动功能:

        var time = function(num) {
          if(num < 0 || num >= 24) {throw "Invalid number");}
          var x = num > 13 ? num - 12 : num;
          var h = Math.floor(x);
          var min = x - h;
          var ampm = num >= 12 && num < 24 ? "pm" : "am";

          return (h + ":" + Math.floor(min * 60) + ampm);
        };

分数还存储秒和分钟,但这看起来像我需要的那样far@Sarah,添加了带有秒数的版本:)+1是的,Steven Leviathin的日期格式化程序在JS:@Gaby中灵活的日期格式方面非常出色-我最近发现JavaScript set*函数可以很好地处理溢出,这让我感到敬畏:)@fearoffours——当Date.js感觉有点太多时,它确实是一个用于格式化日期的非常棒的轻量级库:)
        var time = function(num) {
          if(num < 0 || num >= 24) {throw "Invalid number");}
          var x = num > 13 ? num - 12 : num;
          var h = Math.floor(x);
          var min = x - h;
          var ampm = num >= 12 && num < 24 ? "pm" : "am";

          return (h + ":" + Math.floor(min * 60) + ampm);
        };
        time(13.40); // 1:24pm
        time(11.25); // 11:15pm
        time(12.50); // 12:30pm
        time(23.50); // 11:30pm
        time(0.50);  // 0:30am
        time(24.00); // error!!