Rev 1064 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
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}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 - currentDateconst 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')}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' })const getRelativeTime = (time) => {const started = new Date(time + 1000).getTime()const now = new Date().getTime()const elapsed = (started - now) / 1000for (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 ''}const formatDate = (date) => {const dateObj = new Date(date)if (isNaN(dateObj)) {return date}return new Intl.DateTimeFormat('es', {dateStyle: 'medium',timeStyle: 'short',timeZone: 'UTC',hour12: true}).format(dateObj)}export { getYears, getMonthName, getMonths, getRelativeTime, formatDate }