Rev 3719 | AutorÃa | Comparar con el anterior | Ultima modificación | Ver Log |
export const getYears = () => {const date = new Date();const currentYear = date.getFullYear();let years = [];for (let index = currentYear; index > currentYear - 100; index--) {years = [...years, index];}return years;};export const getMonths = () => {const months = Array.from({ length: 12 }, (item, i) => {return new Date(0, i).toLocaleString('es-ES', { month: 'long' });});return months;};export function getTimeDiff(segundos) {const currentDate = new Date();const futureDate = new Date(currentDate.getTime() + segundos * 1000);const diff = futureDate - currentDate;const days = Math.floor(diff / (1000 * 60 * 60 * 24));const hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));return `${addZero(days)}d ${addZero(hours)}h ${addZero(minutes)}m`;}function addZero(unit) {return String(unit).padStart(2, '0');}export const getMonthName = (monthNumber) => {const date = new Date();date.setMonth(monthNumber - 1);const month = date.toLocaleString('es-ES', { month: 'long' });return month;};const DATE_UNITS = {year: 31557600,month: 2628000,day: 86000,hour: 3600,minute: 60,second: 1};const rft = new Intl.RelativeTimeFormat('en', { numeric: 'auto' });export const getRelativeTime = (time) => {const started = new Date(time + 1000).getTime();const now = new Date().getTime();const elapsed = (started - now) / 1000;for (const unit in DATE_UNITS) {const absoluteElapsed = Math.abs(elapsed);if (absoluteElapsed > DATE_UNITS[unit] || unit === 'second') {return rft.format(Math.floor(elapsed / DATE_UNITS[unit]), unit);}}return '';};export const formatDate = (date) => {const now = new Date();if (!date || isNaN(new Date(date))) {return now.toLocaleString('es-ES', {dateStyle: 'medium',timeStyle: 'short',timeZone: 'UTC',hour12: true});}return new Intl.DateTimeFormat('es', {dateStyle: 'medium',timeStyle: 'short',timeZone: 'UTC',hour12: true}).format(new Date(date));};