UNPKG

@polyv/utils

Version:

Utility functions of Polyv frontend development.

1 lines 852 B
function ensureDate(e){return"object"!=typeof e&&(e=new Date(e)),e}export function formatDate(e,t){const n={Y:(e=ensureDate(e)).getFullYear(),M:e.getMonth()+1,D:e.getDate(),h:e.getHours(),m:e.getMinutes(),s:e.getSeconds()};return t.replace(/([YMDhms])\1*/g,(function(e){let t=n[e[0]].toString();const r=e.length;return r>t.length&&(t=new Array(r-t.length+1).join("0")+t),t}))}export function formatSeconds(e,t={segments:2,digits:2}){if(e=Number(e),isNaN(e)||e<0)throw new Error('"secs" must be a positive integer');let n=2;"auto"===t.segments&&e>=3600?n=3:"number"==typeof t.segments&&-1!==[2,3].indexOf(t.segments)&&(n=t.segments);let r=0|(t.digits||2);r=Math.max(1,r);const s=new Array(r+1).join("0"),o=[60,1];return 3===n&&o.unshift(3600),o.map((t=>{const n=Math.floor(e/t),o=n.toString().length;return e%=t,(s+n).slice(-Math.max(o,r))})).join(":")}