const timeConverter = (hoursAgo) => { const date = new Date(); date.setTime(date.getTime() - (parseInt(hoursAgo) * 60 * 60 * 1000)); return { indonesian: date.toLocaleString('id-ID', { timeZone: 'Asia/Jakarta' }), iso: date.toISOString() }; }; const parseRelativeTime = (relativeTimeString) => { const match = relativeTimeString.match(/(\d+)(hr|h|hours?|min|m|minutes?|d|days?)\s*ago/i); if (!match) { throw new Error('Invalid relative time format'); } const value = parseInt(match[1]); const unit = match[2].toLowerCase(); const date = new Date(); switch (unit) { case 'hr': case 'h': case 'hour': case 'hours': date.setTime(date.getTime() - (value * 60 * 60 * 1000)); break; case 'min': case 'm': case 'minute': case 'minutes': date.setTime(date.getTime() - (value * 60 * 1000)); break; case 'd': case 'day': case 'days': date.setTime(date.getTime() - (value * 24 * 60 * 60 * 1000)); break; default: throw new Error('Unsupported time unit'); } return { indonesian: date.toLocaleString('id-ID', { timeZone: 'Asia/Jakarta' }), iso: date.toISOString(), timestamp: date.getTime() }; }; console.log('4 hours ago:', parseRelativeTime('4hr ago')); console.log('30 minutes ago:', parseRelativeTime('30min ago')); console.log('2 days ago:', parseRelativeTime('2d ago')); console.log('Original timeConverter:', timeConverter('4'));