На самом деле не вопрос, а своего рода вызов ..
У меня есть эта функция PHP, которую я всегда использую, и теперь она мне нужна в Javascript.
function formatBytes($bytes, $precision = 0) {
$units = array('b', 'KB', 'MB', 'GB', 'TB');
$bytes = max($bytes, 0);
$pow = floor(($bytes ? log($bytes) : 0) / log(1024));
$pow = min($pow, count($units) - 1);
$bytes /= pow(1024, $pow);
return round($bytes, $precision) . ' ' . $units[$pow];
}
РЕДАКТИРОВАТЬ: Благодаря ответам я придумал что-то короче, но без точности (дайте мне знать, если у вас есть какие-то мысли)
function format_bytes(size){
var base = Math.log(size) / Math.log(1024);
var suffixes = ['b', 'KB', 'MB', 'GB', 'TB' , 'PB' , 'EB'];
return Math.round(Math.pow(1024, base - Math.floor(base)), 0) + ' ' + suffixes[Math.floor(base)];
}