在javascript中将时间字符串从hhmm转换为hh:mm格式

时间:2014-09-04 08:07:38

标签: javascript datetime optimization

我想将hhmm格式的时间字符串转换为hh:mm格式,例如

" 230"会成为" 2:30"

" 400"会成为" 4:00"

我做了以下

var timeString = "200";

var finalString = "" 
            + (((parseInt(timeString)) 
            - ((parseInt(timeString))%100))/100) 
            + ":" 
            + ((parseInt(timeString)%100)? (parseInt(timeString)%100) :"00");

它有效,但有更好的方法吗?

编辑:

1)如果" 400"应转换为" 04:00"?

5 个答案:

答案 0 :(得分:2)

我建议你使用moment.js库。然后你可以使用例如:

之类的代码
moment("1230","HHmm").format("HH:mm");

答案 1 :(得分:0)

所以只需子串并添加你的点,简单的方法是最好的:

var myTimeStr = '400',
   hours = myTimeStr.substring(0, myTimeStr.length-2), 
   mins = myTimeStr.substring(myTimeStr.length-2),
   res = hours + ':' + mins;

答案 2 :(得分:0)

你可以在没有任何外部库的情况下缩短你的javascript代码,只需“vanilla-JS”

var myTimeStr = '400';
var dt = myTimeStr.match(/(\d{1,2})(\d{2})/);
console.log([dt[1], dt[2]].join(':')); // 4:00

答案 3 :(得分:0)

使用String slice()可以这样做:

var str = "1230"; 
var len = str.length;
var res = str.slice(0,len-2) + ":" + str.slice(len-2);

答案 4 :(得分:0)

你可以试试这个

var finalString = [timeString.slice(0, timeString.length - 2), ':', timeString.slice(timeString.length - 2)].join('');