Savelyev_Vyacheslav

format date normalizeDate

Sep 27th, 2024
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function normalizeDate(dateString) {
  2.     // Пробуем сопоставить разные форматы
  3.     const formats = [
  4.         /^(\d{2})\.(\d{2})\.(\d{4}) (\d{2}):(\d{2}):(\d{2})$/,  // dd.MM.yyyy HH:mm:ss
  5.         /^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/,     // yyyy-MM-dd HH:mm:ss
  6.         /^(\d{2})\/(\d{2})\/(\d{4}) (\d{2}):(\d{2}):(\d{2})$/    // dd/MM/yyyy HH:mm:ss
  7.     ];
  8.  
  9.     let year, month, day, hours, minutes, seconds;
  10.  
  11.     for (let format of formats) {
  12.         const match = dateString.match(format);
  13.  
  14.         if (match) {
  15.             if (format === formats[0] || format === formats[2]) { // dd.MM.yyyy HH:mm:ss или dd/MM/yyyy HH:mm:ss
  16.                 day = match[1];
  17.                 month = match[2];
  18.                 year = match[3];
  19.             } else if (format === formats[1]) { // yyyy-MM-dd HH:mm:ss
  20.                 year = match[1];
  21.                 month = match[2];
  22.                 day = match[3];
  23.             }
  24.  
  25.             hours = match[4];
  26.             minutes = match[5];
  27.             seconds = match[6];
  28.  
  29.             // Приводим все элементы даты к нужному формату с ведущими нулями
  30.             year = year.padStart(4, '0');
  31.             month = month.padStart(2, '0');
  32.             day = day.padStart(2, '0');
  33.             hours = hours.padStart(2, '0');
  34.             minutes = minutes.padStart(2, '0');
  35.             seconds = seconds.padStart(2, '0');
  36.  
  37.             // Формируем и возвращаем дату в нужном формате
  38.             return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
  39.         }
  40.     }
  41.  
  42.     throw new Error('Invalid date format');
  43. }
  44.  
  45. // Пример использования
  46. ss.info(normalizeDate('21.09.2024 15:30:25')); // '2024-09-21 15:30:25'
  47. ss.info(normalizeDate('2024-09-21 15:30:25')); // '2024-09-21 15:30:25'
  48. ss.info(normalizeDate('21/09/2024 15:30:25')); // '2024-09-21 15:30:25'
Advertisement
Add Comment
Please, Sign In to add comment