76 lines
2.0 KiB
JavaScript
76 lines
2.0 KiB
JavaScript
import * as optionsConfig from '../assets/data/options';
|
|
|
|
export const convertKTC = (dt, nation = true) => {
|
|
if (!dt) return "";
|
|
if (typeof dt !== "string") return "";
|
|
|
|
const date = new Date(dt.endsWith("Z") ? dt : `${dt}Z`);
|
|
const options = {
|
|
year: 'numeric',
|
|
month: '2-digit',
|
|
day: '2-digit',
|
|
hour: '2-digit',
|
|
minute: '2-digit',
|
|
hour12: true, // 오전/오후 형식을 위해 true 설정
|
|
timeZone: 'Asia/Seoul',
|
|
};
|
|
|
|
return nation ? date.toLocaleString('ko-KR', options) + " KST" : date.toLocaleString('ko-KR', options);
|
|
}
|
|
|
|
export const convertKTCDate = (dt) => {
|
|
const date = new Date(dt);
|
|
date.setHours(date.getHours() + 9);
|
|
return date;
|
|
}
|
|
|
|
export const convertUTC = (dt) => {
|
|
if (!dt) return null;
|
|
const date = new Date(dt);
|
|
return new Date(date.setHours(date.getHours() - 9));
|
|
}
|
|
|
|
export const combineDateTime = (date, hour, min) => {
|
|
if (!date) return null;
|
|
return new Date(date.getFullYear(), date.getMonth(), date.getDate(), hour, min);
|
|
};
|
|
|
|
export const timeDiffMinute = (mainDt, subDt) => {
|
|
const main_data = new Date(mainDt);
|
|
const sub_data = new Date(subDt);
|
|
return (main_data.getTime() - sub_data.getTime()) / 1000 / 60
|
|
}
|
|
|
|
export const formatStringDate = (date) => {
|
|
const year = date.getFullYear();
|
|
const month = String(date.getMonth() + 1).padStart(2, '0');
|
|
const day = String(date.getDate()).padStart(2, '0');
|
|
|
|
return `${year}-${month}-${day}`;
|
|
}
|
|
|
|
export const truncateText = (text) => {
|
|
const maxLength = 30;
|
|
if (text.length > maxLength) {
|
|
return text.substring(0, maxLength) + '...';
|
|
}
|
|
return text;
|
|
};
|
|
|
|
export const getOptionsArray = (optionsKey) => {
|
|
if (typeof optionsKey === 'string') {
|
|
return optionsConfig[optionsKey] || [];
|
|
}
|
|
return optionsKey || [];
|
|
};
|
|
|
|
export const loadConfig = async (configPath) => {
|
|
try {
|
|
// 동적 import
|
|
const module = await import(`../assets/data/pages/${configPath}.json`);
|
|
return module.default;
|
|
} catch (error) {
|
|
console.error(`Failed to load search configuration: ${configPath}`, error);
|
|
throw error;
|
|
}
|
|
}; |