@zezosoft/zezo-ott-react-native-video-player
Version:
React Native OTT Video Player for Android & iOS. Supports playlists, seasons, auto-next playback, subtitles, theming, analytics, fullscreen mode, and custom controls. 🚀 Powered by ZezoSoft.
48 lines (41 loc) • 1.46 kB
text/typescript
/**
* @author Naresh Dhamu
* @lastModified Sat 16 Aug 2025 at 10:32 PM
* @description: Utility functions for formatting time
*/
export const formatDuration = (
totalSeconds: number,
hideSeconds = false,
addSpaces = false
): string => {
const hours = Math.floor(totalSeconds / 3600);
const minutes = Math.floor((totalSeconds % 3600) / 60);
const seconds = totalSeconds % 60;
const formatUnit = (value: number, label: string) =>
value ? `${value}${addSpaces ? ` ${label} ` : label}` : '';
const result =
formatUnit(hours, 'h') +
formatUnit(minutes, 'm') +
formatUnit(seconds, 's');
return hideSeconds
? formatUnit(hours, 'h') + formatUnit(minutes, 'm')
: result;
};
export const formatTime = (seconds: number) => {
const h = Math.floor(seconds / 3600);
const m = Math.floor((seconds % 3600) / 60);
const s = Math.floor(seconds % 60);
if (h > 0) {
return `${h}:${String(m).padStart(2, '0')}:${String(s).padStart(2, '0')}`;
}
return `${m}:${String(s).padStart(2, '0')}`;
};
export const formatTimeWithMs = (seconds: number): string => {
if (isNaN(seconds) || seconds < 0) return '00:00.000';
const totalMs = Math.floor(seconds * 1000);
const ms = totalMs % 1000;
const totalSec = Math.floor(totalMs / 1000);
const min = Math.floor(totalSec / 60);
const sec = totalSec % 60;
return `${String(min).padStart(2, '0')}:${String(sec).padStart(2, '0')}.${String(ms).padStart(3, '0')}`;
};