1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- export const formatTimestamp = (
- timestamp?: number | string | Date,
- format: Intl.DateTimeFormatOptions = { hourCycle: 'h23' }
- ): string => {
- if (!timestamp) {
- return '';
- }
- // empty array gets the default one from the browser
- const date = new Date(timestamp);
- // invalid date
- if (Number.isNaN(date.getTime())) {
- return '';
- }
- // browser support
- const language = navigator.language || navigator.languages[0];
- return date.toLocaleString(language || [], format);
- };
- export const formatMilliseconds = (input = 0) => {
- const milliseconds = Math.max(input || 0, 0);
- const seconds = Math.floor(milliseconds / 1000);
- const minutes = Math.floor(seconds / 60);
- const hours = Math.floor(minutes / 60);
- if (hours > 0) {
- return `${hours}h ${minutes % 60}m`;
- }
- if (minutes > 0) {
- return `${minutes}m ${seconds % 60}s`;
- }
- if (seconds > 0) {
- return `${seconds}s`;
- }
- return `${milliseconds}ms`;
- };
- export const passedTime = (value: number) => (value < 10 ? `0${value}` : value);
- export const calculateTimer = (startedAt: number) => {
- const nowDate = new Date();
- const now = nowDate.getTime();
- const newDate = now - startedAt;
- const minutes = nowDate.getMinutes();
- const second = nowDate.getSeconds();
- return newDate > 0 ? `${passedTime(minutes)}:${passedTime(second)}` : '00:00';
- };
|