UNPKG

@modern-kit/utils

Version:
1 lines 2.87 kB
{"version":3,"file":"index.cjs","sources":["../../../src/date/parseDateString/index.ts"],"sourcesContent":["/**\n * @description 날짜 문자열이 Safari에서 호환되지 않는 날짜 형식(\"-\" 또는 \".\"을 포함한 형식)인지 확인합니다.\n * - `YYYY-MM-DD`, `YYYY.MM.DD` 형식의 날짜 문자열\n */\nconst isIncompatibleDateFormatForSafari = (dateString: string): boolean => {\n const regex =\n /^\\d{4}[-](?:\\d{2})[-](?:\\d{2})$|^\\d{4}[.](?:\\d{2})[.](?:\\d{2})$/;\n return regex.test(dateString);\n};\n\n/**\n * @description 날짜 문자열을 파싱하여 구분자를 슬래시(/)로 정규화합니다.\n *\n * Safari에서 호환되지 않는 날짜 형식(\"-\" 또는 \".\"을 포함한 형식)을 호환시키기 위해 사용합니다.\n *\n * YYYY-MM-DD, YYYY-MM-DD HH:MM:SS, YYYY.MM.DD, YYYY.MM.DD HH:MM:SS 형식의 날짜 문자열을 처리하며, 그 외 형식은 그대로 반환합니다.\n *\n * @param {string} date - 파싱할 날짜 문자열.\n * @returns {string} 슬래시(/)로 구분된 정규화된 날짜 문자열 또는 원래의 날짜 문자열.\n *\n * @example\n * // 아래 형식들은 슬래시(/)로 구분된 정규화된 날짜 문자열로 변환합니다.\n * parseDateString(\"2025-01-01\"); // \"2025/01/01\" 반환\n * parseDateString(\"2025-01-01 13:45:00\"); // \"2025/01/01 13:45:00\" 반환\n *\n * parseDateString(\"2025.01.01\"); // \"2025/01/01\" 반환\n * parseDateString(\"2025.01.01 13:45:00\"); // \"2025/01/01 13:45:00\" 반환\n *\n * @example\n * // 아래 형식들은 그대로 반환합니다.\n * parseDateString('2025/01/01'); // \"2025/01/01\"\n * parseDateString('2025-01-01T13:45:00'); // \"2025-01-01T13:45:00\"\n * parseDateString('2025-01-01T13:45:00Z'); // \"2025-01-01T13:45:00Z\"\n * parseDateString('01/01/2025'); // \"01/01/2025\"\n */\nexport function parseDateString(date: string): string {\n const dateParts = date.split(/\\s/);\n let safeDateString = date;\n\n const yearMonthDay = dateParts[0];\n const time = dateParts[1];\n\n if (isIncompatibleDateFormatForSafari(yearMonthDay)) {\n const formattedDate = yearMonthDay.replace(/[-\\\\.]/g, '/');\n safeDateString = time ? `${formattedDate} ${time}` : formattedDate;\n }\n\n return safeDateString;\n}\n"],"names":[],"mappings":";;AAIA,MAAM,iCAAA,GAAoC,CAAC,UAAA,KAAgC;AACzE,EAAA,MAAM,KAAA,GACJ,iEAAA;AACF,EAAA,OAAO,KAAA,CAAM,KAAK,UAAU,CAAA;AAC9B,CAAA;AA2BO,SAAS,gBAAgB,IAAA,EAAsB;AACpD,EAAA,MAAM,SAAA,GAAY,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA;AACjC,EAAA,IAAI,cAAA,GAAiB,IAAA;AAErB,EAAA,MAAM,YAAA,GAAe,UAAU,CAAC,CAAA;AAChC,EAAA,MAAM,IAAA,GAAO,UAAU,CAAC,CAAA;AAExB,EAAA,IAAI,iCAAA,CAAkC,YAAY,CAAA,EAAG;AACnD,IAAA,MAAM,aAAA,GAAgB,YAAA,CAAa,OAAA,CAAQ,SAAA,EAAW,GAAG,CAAA;AACzD,IAAA,cAAA,GAAiB,IAAA,GAAO,CAAA,EAAG,aAAa,CAAA,CAAA,EAAI,IAAI,CAAA,CAAA,GAAK,aAAA;AAAA,EACvD;AAEA,EAAA,OAAO,cAAA;AACT;;;;"}