HEX
Server: nginx/1.18.0
System: Linux test-ipsremont 5.4.0-214-generic #234-Ubuntu SMP Fri Mar 14 23:50:27 UTC 2025 x86_64
User: ips (1000)
PHP: 8.0.30
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/quadcode/one-time-popup/src/utils/date/dateFormater.ts
export const formatDate = (dateString: string, lang = 'en') => {
  const date = new Date(dateString);

  const dateFormatter = new Intl.DateTimeFormat(lang, {
    weekday: 'long',
    year: 'numeric',
    month: lang === 'en' ? 'long' : 'numeric',
    day: 'numeric',
  });

  let preparedDate = dateFormatter.format(date);

  if (lang !== 'en') {
    preparedDate = preparedDate
      .replace(/(\d+)\/(\d+)\/(\d+)/, '$2.$1.$3')
      .replace(/(\d+)-(\d+)-(\d+)/, '$2.$1.$3');
  } else {
    const day = date.getDate();
    const suffix =
      day >= 11 && day <= 13
        ? 'th'
        : ['th', 'st', 'nd', 'rd', 'th', 'th', 'th', 'th', 'th', 'th'][day % 10];
    preparedDate = preparedDate.replace(/\d+/, day + suffix);
  }

  const timeFormatter = new Intl.DateTimeFormat(lang, {
    hour: 'numeric',
    minute: 'numeric',
    timeZoneName: 'short',
  });
  const preparedTime = timeFormatter
    .formatToParts(date)
    .map(({ type, value }) => {
      return type === 'timeZoneName' ? `(${value})` : value;
    })
    .join('')
    .replace(/\s+\(/, ' (');

  return { preparedDate, preparedTime };
};