source: jobvista-frontend/src/utils/utils.js@ 19398ad

main
Last change on this file since 19398ad was 19398ad, checked in by 223021 <daniel.ilievski.2@…>, 6 weeks ago

Implemented backend and frontend CRUD operations for job advertisements

  • Property mode set to 100644
File size: 1.3 KB
Line 
1
2
3export const sortElementsByDateCreated = (array) => {
4 return array.slice().sort((a, b) => {
5 return new Date(b.postedAt).getTime() - new Date(a.postedAt).getTime()
6 });
7}
8
9export const formatRelativeTime = (dateString) => {
10 const date = new Date(dateString);
11 const now = new Date();
12 const diffTime = now - date;
13
14 // Define time intervals in milliseconds
15 const minute = 60 * 1000;
16 const hour = minute * 60;
17 const day = hour * 24;
18 const week = day * 7;
19 const month = day * 30;
20
21 // Calculate the relative time
22 if (diffTime < minute) {
23 return 'just now';
24 } else if (diffTime < hour) {
25 const minutes = Math.floor(diffTime / minute);
26 return `${minutes} ${minutes === 1 ? 'min' : 'min'} ago`;
27 } else if (diffTime < day) {
28 const hours = Math.floor(diffTime / hour);
29 return `${hours} ${hours === 1 ? 'hour' : 'hours'} ago`;
30 } else if (diffTime < week) {
31 const days = Math.floor(diffTime / day);
32 return `${days} ${days === 1 ? 'day' : 'days'} ago`;
33 } else if (diffTime < month) {
34 const weeks = Math.floor(diffTime / week);
35 return `${weeks} ${weeks === 1 ? 'week' : 'weeks'} ago`;
36 } else {
37 const months = Math.floor(diffTime / month);
38 return `${months} ${months === 1 ? 'month' : 'months'} ago`;
39 }
40}
Note: See TracBrowser for help on using the repository browser.