X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Futils%2Fdatetime.js;h=75e85d714baa073efc0bc347a566a918d18b5d0b;hb=6808d7a16ec1e761c6a2dffec2281c96953e4d89;hp=3075bffc91aac9151f65e6ba18bf8e6f879fea23;hpb=8d61fc4ab7373b4a576f3f9108cdf7768ae27096;p=vchess.git diff --git a/client/src/utils/datetime.js b/client/src/utils/datetime.js index 3075bffc..75e85d71 100644 --- a/client/src/utils/datetime.js +++ b/client/src/utils/datetime.js @@ -1,15 +1,50 @@ -function zeroPad(x) -{ - return (x<10 ? "0" : "") + x; +function zeroPad(x) { + return (x < 10 ? "0" : "") + x; } -export function getDate(d) -{ - return d.getFullYear() + '-' + zeroPad(d.getMonth()+1) + '-' + zeroPad(d.getDate()); +export function getDate(d) { + return ( + d.getFullYear() + + "-" + + zeroPad(d.getMonth() + 1) + + "-" + + zeroPad(d.getDate()) + ); } -export function getTime(d) -{ - return zeroPad(d.getHours()) + ":" + zeroPad(d.getMinutes()) + ":" + - zeroPad(d.getSeconds()); +export function getTime(d) { + return ( + zeroPad(d.getHours()) + + ":" + + zeroPad(d.getMinutes()) + + ":" + + zeroPad(d.getSeconds()) + ); +} + +function padDigits(x) { + if (x < 10) return "0" + x; + return x; +} + +export function ppt(t) { + // "Pretty print" an amount of time given in seconds + const dayInSeconds = 60 * 60 * 24; + const hourInSeconds = 60 * 60; + const days = Math.floor(t / dayInSeconds); + const hours = Math.floor((t % dayInSeconds) / hourInSeconds); + const minutes = Math.floor((t % hourInSeconds) / 60); + const seconds = Math.floor(t % 60); + let res = ""; + if (days > 0) res += days + "d "; + if (days <= 3 && hours > 0) + //NOTE: 3 is arbitrary + res += hours + "h "; + if (days == 0 && minutes > 0) + res += hours > 0 ? padDigits(minutes) + "m " : minutes + ":"; + if (days == 0 && hours == 0) { + res += padDigits(seconds); + if (minutes == 0) res += "s"; //seconds indicator, since this is the only number printed + } + return res.trim(); //remove potential last space }