Javascript:将Int号转换为日期格式:(8 - > 08:00)

时间:2016-01-13 08:04:23

标签: javascript

我有一个简单的问题。 我想要一个for循环输出一个时间数组,格式为:00:00。

var array = [];
for (var i = 0; i < 24; i++) {
   var time = // Convert int here to : 00:00, 01:00...24:00 format. 
   array.push(time);
}

由于

更新,感谢回复,这是我如何解决它。

function dynamicTimeList(time) {
        var startHour = 6;
        var startMinute = 0;
        var timeList = [];

        while (startHour < 24) {
            var tempHour = ("0" + startHour).slice(-2)
            while (startMinute < 60) {
                var tempMin = ("0" + startMinute).slice(-2)
                timeList.push(tempHour +":"+ tempMin)
                startMinute += 15;
            }
            startHour++;
        }
    }

    // Output: 01:00, 01:15, 01:30, 01:45, 02:00, etc... 

4 个答案:

答案 0 :(得分:4)

var array = [];
for (var i = 0; i < 24; i++) {
   var time = i < 10 ? "0"+i+":00" : i+":00";  
   array.push(time);
}

如果i小于10,那么它需要左边填充0,否则可以按原样使用,然后":00"可以加上它。< / p>

或者如果您想稍后找出时间格式,那么只需将更新后的小时和分钟的日期对象添加到数组中

var array = [];
for (var i = 0; i < 24; i++) 
{
   var date = new Date();
   date.setHours( i ); 
   date.setMinutes( 0 );
   array.push(date);
}

答案 1 :(得分:3)

试试这个

var array = [];
var date = new Date();
for (var i = 0; i < 24; i++) {
   date.setTime(date.getTime() + (60*60*1000)); //add one hour
   array.push(date.toLocaleTimeString());       //push the time as LocalString into array
}
console.log(array)

答案 2 :(得分:2)

new Array(24).fill(0).map((v,i) => (i < 10 ? '0' + i : i)+':00');

答案 3 :(得分:1)

如果你在js中玩Date个对象,你应该使用Moment.js

var array = [];
var d = new Date();

// reset to initial value;
d.setHours(0, 0, 0, 0);

// Check if its the same date
while (d.getDate() === new Date().getDate()) {
  array.push(moment(d).format('HH:mm'));
  d.setHours(d.getHours() + 1);
}

console.log(array)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.11.1/moment.min.js"></script>