Bin
2025-12-17 d616898802dfe7e5dd648bcf53c6d1f86b6d3642
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
function checkISO(value) {
  const regExpISO = /\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z)/;
 
  return regExpISO.test(value);
}
 
/**
 * Helper function to convert ms -> HHMMSS
 * @param {number} ms
 * @returns {string}
 */
export function msToHMS(ms) {
  // 1- Convert to seconds:
  let seconds = ms / 1000;
  // 2- Extract hours:
  const hours = Number.parseInt(seconds / 3600); // 3,600 seconds in 1 hour
 
  seconds = seconds % 3600; // seconds remaining after extracting hours
  // 3- Extract minutes:
  const minutes = Number.parseInt(seconds / 60); // 60 seconds in 1 minute
  // 4- Keep only seconds not extracted to minutes:
 
  seconds = Math.floor(seconds); // % 60;
 
  return `${hours}:${minutes}:${seconds}`;
}
 
/**
 * Helper function to pretty date
 */
export function prettyDate(time) {
  if (typeof time !== "string" && !(time instanceof Date) && !checkISO(time)) return;
 
  const date = new Date(time);
  const diff = (new Date().getTime() - date.getTime()) / 1000;
  const day_diff = Math.floor(diff / 86400);
 
  if (isNaN(day_diff) || day_diff < 0) return;
 
  return (
    (day_diff === 0 &&
      ((diff < 60 && "just now") ||
        (diff < 120 && "1 minute ago") ||
        (diff < 3600 && `${Math.floor(diff / 60)} minutes ago`) ||
        (diff < 7200 && "1 hour ago") ||
        (diff < 86400 && `${Math.floor(diff / 3600)} hours ago`))) ||
    (day_diff === 1 && "Yesterday") ||
    (day_diff < 7 && `${day_diff} days ago`) ||
    (day_diff < 31 && `${Math.ceil(day_diff / 7)} weeks ago`) ||
    `${day_diff} days ago`
  );
}
 
export function toISODateString(date) {
  date = date || new Date();
 
  const tzOffest = date.getTimezoneOffset() * 60000;
  const localISOTime = new Date(date.getTime() - tzOffest).toISOString().slice(0, -1);
 
  return localISOTime;
}
 
/**
 * Helper function to get current timezone
 */
export function currentISODate() {
  return toISODateString();
}