Конвертировать секунды в минуты и секунды в ActionScript 3 - PullRequest
2 голосов
/ 03 апреля 2012

Я работаю с YouTube API и получаю текущее время на видео в секундах.То, что я хочу сделать, это преобразовать их в это: ММ: СС

Я пытался гуглить и пробовать разные вещи сам, но, похоже, ничего не получалось и было эффективно.

Я 'Буду рад видеть, как это можно сделать качественно и эффективно, заранее спасибо!

Ответы [ 4 ]

6 голосов
/ 03 апреля 2012

Что-то вроде:

var formattedTime = 
    (Math.floor(seconds/60)) + ":" + // minutes 
    (seconds % 60 >= 10 ? "": "0") + // padding for seconds if needed  
    (seconds % 60));                 // seconds 
1 голос
/ 03 апреля 2012
var timeStr:String;
//Video's length >= 1 hour
if( seconds >= 60*60 ){
    //Format-> H:MM:SS
    timeStr = (""+Math.floor(seconds/(60*60))) + //Hours
               ":"+
              ("0"+Math.floor((seconds%(60*60))/60)).substr(-2)+ //Minutes                   
               ":"+
              ("0"+(seconds%60)).substr(-2);         //Seconds
}else{
    //Format-> MM:SS
    timeStr = ("0"+Math.floor(seconds/60)).substr(-2)+ //Minutes
               ":"+
              ("0"+(seconds%60)).substr(-2);         //Seconds
}
1 голос
/ 03 апреля 2012

вот небольшой класс, который я использую все время только для того, что вам нужно.Я также добавил временные коды к секундам.Просто используйте его как Timecodes.secondsToTimecode(634);, который выдаст 00:10:34

package com.ronnieswietek.utils
{
    public class Timecodes
    {
        public function Timecodes()
        {
        }

        public static function timecodeToSeconds(tcStr:String):Number
        {
            var t:Array = tcStr.split(":");
            return (t[0] * 3600 + t[1] * 60 + t[2] * 1);
        }

        public static function secondsToTimecode(seconds:Number):String
        {
            var minutes:Number          = Math.floor(seconds/60);
            var remainingSec:Number     = seconds % 60;
            var remainingMinutes:Number = minutes % 60;
            var hours:Number            = Math.floor(minutes/60);
            var floatSeconds:Number     = Math.floor((remainingSec - Math.floor(remainingSec))*100);
            remainingSec                = Math.floor(remainingSec);

            return getTwoDigits(hours) + ":" + getTwoDigits(remainingMinutes) + ":" + getTwoDigits(remainingSec);
        }

        private static function getTwoDigits(number:Number):String
        {
            if (number < 10)
            {
                return "0" + number;
            }
            else
            {
                return number + "";
            }
        }
    }
}
0 голосов
/ 03 апреля 2012

Что-то немного легче читать, чтобы обдумать это:

var seconds:int = 200;
var minutes:int = 0;

while(seconds >= 60)
{
    seconds -= 60;
    minutes ++;
}

trace(minutes, seconds);

Начальная часть нулей может быть сделана так:

var secStr:String = String(seconds);
var minStr:String = String(minutes);

secStr = (secStr.length == 1) ? "0" + secStr : secStr;
minStr = (minStr.length == 1) ? "0" + minStr : minStr;

trace(minStr + ":" + secStr);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...