utils.ts 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. export default {
  2. formatTime: (originalDuration: number) => {
  3. if (originalDuration <= 0) return "0:00";
  4. let duration = originalDuration;
  5. let hours: number | string = Math.floor(duration / (60 * 60));
  6. duration -= hours * 60 * 60;
  7. let minutes: number | string = Math.floor(duration / 60);
  8. duration -= minutes * 60;
  9. let seconds: number | string = Math.floor(duration);
  10. if (hours === 0) {
  11. hours = "";
  12. }
  13. if (hours > 0) {
  14. if (minutes < 10) minutes = `0${minutes}`;
  15. }
  16. if (seconds < 10) {
  17. seconds = `0${seconds}`;
  18. }
  19. return `${hours}${hours ? ":" : ""}${minutes}:${seconds}`;
  20. },
  21. formatTimeLong: (duration: number) => {
  22. if (duration <= 0) return "0 seconds";
  23. const hours = Math.floor(duration / (60 * 60));
  24. const formatHours = () => {
  25. if (hours > 0) {
  26. if (hours > 1) return `${hours} hours `;
  27. return `${hours} hour `;
  28. }
  29. return "";
  30. };
  31. const minutes = Math.floor((duration - hours * 60 * 60) / 60);
  32. const formatMinutes = () => {
  33. if (minutes > 0) {
  34. if (minutes > 1) return `${minutes} minutes `;
  35. return `${minutes} minute `;
  36. }
  37. return "";
  38. };
  39. const seconds = Math.floor(duration - hours * 60 * 60 - minutes * 60);
  40. const formatSeconds = () => {
  41. if (seconds > 0) {
  42. if (seconds > 1) return `${seconds} seconds `;
  43. return `${seconds} second `;
  44. }
  45. return "";
  46. };
  47. return formatHours() + formatMinutes() + formatSeconds();
  48. },
  49. getDateFormatted: (createdAt: number | Date) => {
  50. const date = new Date(createdAt);
  51. const year = date.getFullYear();
  52. const month = `${date.getMonth() + 1}`.padStart(2, "0");
  53. const day = `${date.getDate()}`.padStart(2, "0");
  54. const hour = `${date.getHours()}`.padStart(2, "0");
  55. const minute = `${date.getMinutes()}`.padStart(2, "0");
  56. return `${year}-${month}-${day} ${hour}:${minute}`;
  57. }
  58. };