export const formatNumber = (amt: number, precision: number) => { if (precision < 3) { precision = 3; } if (amt >= 1e6) { return (amt/1e6).toPrecision(precision) + "M"; } else if (amt >= 1e3) { return (amt/1e3).toPrecision(precision) + "k"; } return amt.toPrecision(precision) } export const formatThousands = (amt: number) => { return amt.toString().replace(/\B(?=(\d{3})+(?!\d))/g, " "); } export const formatDataVolume = (amt: number, precision: number) => { if (precision < 3) { precision = 3; } if (amt >= 1e18-1e15) { return (amt/1e18).toPrecision(precision) + " EB"; }else if (amt >= 1e15-1e12) { return (amt/1e15).toPrecision(precision) + " PB"; }else if (amt >= 1e12-1e9) { return (amt/1e12).toPrecision(precision) + " TB"; } else if (amt >= 1e9-1e6) { return (amt/1e9).toPrecision(precision) + " GB"; } else if (amt >= 1e6-1e3) { return (amt/1e6).toPrecision(precision) + " MB"; } else if (amt >= 1e3-1) { return (amt/1e3).toPrecision(precision) + " kB"; } return amt.toPrecision(precision) + " B" } export const formatDataVolumeBits = (amt: number, precision: number) => { amt = amt*8 if (precision < 3) { precision = 3; } if (amt >= 1e18-1e15) { return (amt/1e18).toPrecision(precision) + " Eb"; }else if (amt >= 1e15-1e12) { return (amt/1e15).toPrecision(precision) + " Pb"; }else if (amt >= 1e12-1e9) { return (amt/1e12).toPrecision(precision) + " Tb"; } else if (amt >= 1e9-1e6) { return (amt/1e9).toPrecision(precision) + " Gb"; } else if (amt >= 1e6-1e3) { return (amt/1e6).toPrecision(precision) + " Mb"; } else if (amt >= 1e3-1) { return (amt/1e3).toPrecision(precision) + " kb"; } return amt + " b" } const second = 1000 const minute = second*60 const hour = minute*60 const day = hour*24 export const formatDuration = (ms: number, decimals: number) => { let res = "" if (ms >= day) { res += Math.floor(ms/day) + "d " } if (ms >= hour) { res += Math.floor((ms%day)/hour) + "h " } if (ms >= minute) { res += Math.floor((ms%hour)/minute) + "m " } return res + ((ms%minute)/second).toFixed(decimals) + "s" } export const formatDate = ( date: Date|string, hours: boolean = true, minutes: boolean = true, seconds: boolean = true, ) => { if (!(date instanceof Date)) { date = new Date(date) } let dateStr = date.getFullYear() +"-"+("00"+(date.getMonth()+1)).slice(-2) +"-"+("00"+date.getDate()).slice(-2) if (hours) { dateStr += " "+("00"+date.getHours()).slice(-2) } if (minutes) { dateStr += ":"+("00"+date.getMinutes()).slice(-2) } if (seconds) { dateStr += ":"+("00"+date.getMinutes()).slice(-2) } return dateStr } export const formatEuros = (amt: number, precision: number) => { return "€ "+ (amt / 1000000).toFixed(precision) }