Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Перевод байтов (https://javascript.ru/forum/jquery/13874-perevod-bajjtov.html)

Andrei 18.12.2010 13:23

Перевод байтов
 
Здравствуйте !

Есть размер файла в байтах (6883008), подскажите как правильно перевести байты в удобный для чтения формат ?

Использовать что-то подобное этому ?
function conv_fsize($fsizeb) {
    $fsizekb = round($fsizeb / 1024, 1); //переводим в кб
    $fsizemb = round($fsizekb / 1024, 1); //переводим в мб
    $fsizegb = round($fsizemb / 1024, 1); //переводим в гб
    $fsizetb = round($fsizegb / 1024, 1); //переводим в тб

    if ($fsizekb <= 1024) {
        $fsize = $fsizekb . ' кб';
    } else
        if ($fsizekb >= 1024 and $fsizemb <= 1024) {
            $fsize = $fsizemb . ' мб';
        } else
            if ($fsizemb >= 1024 and $fsizegb <= 1024) {
                $fsize = $fsizegb . ' гб';
            } else {
                $fsize = $fsizetb . ' тб';
            }

            return $fsize;
}

monolithed 18.12.2010 13:38

alert(~~((6883008/1024)/1024) + ' МБ')

Andrei 18.12.2010 17:57

monolithed,
Я сделал так:

function conv_size(b){

	fsizekb = b / 1024;
    fsizemb = fsizekb / 1024;
	fsizegb = fsizemb / 1024;
	fsizetb = fsizegb / 1024;

	if (fsizekb <= 1024) {
        fsize = fsizekb.toFixed(3) + ' кб';
	} else if (fsizekb >= 1024 && fsizemb <= 1024) {
		fsize = fsizemb.toFixed(3) + ' мб';
	} else if (fsizemb >= 1024 && fsizegb <= 1024) {
		fsize = fsizegb.toFixed(3) + ' гб';
	} else {
		fsize = fsizetb.toFixed(3) + ' тб';
	}

    return fsize;

}


Это правильно ?

B@rmaley.e><e 18.12.2010 18:46

Я делаю так:
function formatSize(length){
	var i = 0, type = ['б','Кб','Мб','Гб','Тб','Пб'];
	while((length / 1000 | 0) && i < type.length - 1) {
		length /= 1024;
		i++;
	}
	return length.toFixed(2) + ' ' + type[i];
}


Часовой пояс GMT +3, время: 06:49.