Last active
March 8, 2023 03:39
-
Star
(208)
You must be signed in to star a gist -
Fork
(34)
You must be signed in to fork a gist
-
-
Save thomseddon/3511330 to your computer and use it in GitHub Desktop.
AngularJS byte format filter
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
app.filter('bytes', function() { | |
return function(bytes, precision) { | |
if (isNaN(parseFloat(bytes)) || !isFinite(bytes)) return '-'; | |
if (typeof precision === 'undefined') precision = 1; | |
var units = ['bytes', 'kB', 'MB', 'GB', 'TB', 'PB'], | |
number = Math.floor(Math.log(bytes) / Math.log(1024)); | |
return (bytes / Math.pow(1024, Math.floor(number))).toFixed(precision) + ' ' + units[number]; | |
} | |
}); |
Very nice! Thanks !!!
Awesome! Thanks!
Thank you!!
Perfect. Thanks!!!
if you wanna change dot to comma as decimal separator, just simply add:
.replace('.', ',')
Here is the complete 7th line:
return (bytes / Math.pow(1024, Math.floor(number))).toFixed(precision).replace('.', ',') + ' ' + units[number];
Thank you so much , very helpful 👍
what if bytes size is 0.025
Here it is for Angular ( I just formatted this up a bit, am using Angular7) - I did not port in the Unit Tests, but didn't modify the values, so, might be able to Angularize those as well
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'byteFormatter'
})
export class ByteFormatterPipe implements PipeTransform {
transform(bytes: string | number, precision: number): any {
if (isNaN(parseFloat(bytes.toString())) || !isFinite(Number(bytes))) {
return '-';
}
if (typeof precision === 'undefined') {
precision = 1;
}
const units = ['bytes', 'kB', 'MB', 'GB', 'TB', 'PB'];
const actualValue = Math.floor(Math.log(Number(bytes)) / Math.log(1024));
return (Number(bytes) / Math.pow(1024, Math.floor(actualValue))).toFixed(precision) + ' ' + units[actualValue];
}
}
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
You just saved me 15 mins of my life