/**
 * 时长(秒)输出为对应的时分秒
 * @author joyber
 * use:::
 * dom: <i class="duration" data-duration="300"></i>
 * js: $('.duration').durationText({lang:'en', minUnit:'minute'})
 */
!function ($) {
    $.fn.durationText = function (option) {
        var _option = $.extend({
            lang:'zh-cn',
            minUnit: 'second'
        }, option || {})
        this.each(function () {
            var $this = $(this), duration = $this.data('duration')
            var text = [] , lang = {
                    'en': {hour: 'h', minute: "m", second: 's'},
                    'zh-cn': {hour: '时', minute: '分', second: '秒'},
                },
                hourText = lang[_option.lang] && lang[_option.lang]['hour'] || '时',
                minuText = lang[_option.lang] && lang[_option.lang]['minute'] || '分',
                secoText = lang[_option.lang] && lang[_option.lang]['second'] || '秒'
            ;
            if (_option.minUnit == 'minute') duration = Math.ceil(duration / 60) * 60
            else if (_option.minUnit == 'hour') duration = Math.ceil(duration / 3600) * 3600

            if (duration >= 3600) text.push(Math.floor(duration / 3600) + hourText)
            if (duration >= 60) text.push(Math.floor(duration % 3600 / 60) + minuText)
            if (duration % 60 > 0) text.push(duration % 60 + secoText)
            text = text.join('')
            $this.text(text)
        })
    }
}(jQuery);

标签: none

添加新评论