/** * 获取语种 */ export const getLocale = function() { const language = uni.getStorageSync('language') return language || 'zh-cn' } /** * 返回格式化的时间字符串 * @param {string} startTime - 开始时间 * @param {string} endTime - 结束时间 * @param {string} [lang='zh-cn'] - 语言选项,默认为 'zh-cn' * @returns {string} - 格式化后的时间字符串 */ export const returnTimeFormat = function (startTime, endTime, lang = 'zh-cn') { // 创建日期对象 const start_date = new Date(startTime); const end_date = new Date(endTime); // 判断日期是否为同一天、同一月、同一年 const isSameDay = start_date.toDateString() === end_date.toDateString(); const isSameMonth = start_date.getFullYear() === end_date.getFullYear() && start_date.getMonth() === end_date.getMonth(); const isSameYear = start_date.getFullYear() === end_date.getFullYear(); /** * 用于补零 * @param {number} num - 需要补零的数字 * @returns {string} - 补零后的字符串 */ function padZero(num) { return String(num).padStart(2, '0'); } /** * 根据语言格式化日期 * @param {Date} date - 日期对象 * @param {string} lang - 语言选项 * @returns {string} - 格式化后的日期字符串 */ function formatDate(date, lang) { const year = date.getFullYear(); const month = padZero(date.getMonth() + 1); const day = padZero(date.getDate()); const hours = padZero(date.getHours()); const minutes = padZero(date.getMinutes()); if (lang === 'zh-cn' || lang === 'ja-jp') { return `${year}年${month}月${day}日 ${hours}:${minutes}`; } else if (lang === 'en-us' || lang === 'en') { const options = { year: 'numeric', month: 'long', day: 'numeric', hour: 'numeric', minute: 'numeric' }; return date.toLocaleDateString('en-US', options); } } /** * 格式化时间 * @param {Date} date - 日期对象 * @returns {string} - 格式化后的时间字符串 */ function formatTime(date) { const hours = padZero(date.getHours()); const minutes = padZero(date.getMinutes()); return `${hours}:${minutes}`; } let month = padZero(end_date.getMonth() + 1); let day = padZero(end_date.getDate()); // 根据语言和日期关系返回相应的格式化字符串 if (lang === 'zh-cn' || lang === 'ja-jp') { if (isSameDay) { return `${formatDate(start_date, 'zh-cn')} - ${formatTime(end_date)}`; } else if (isSameMonth) { return `${formatDate(start_date, 'zh-cn')} - ${month}月${day}日 ${formatTime(end_date)}`; } else if (isSameYear) { return `${formatDate(start_date, 'zh-cn')} - ${month}月${day}日 ${formatTime(end_date)}`; } else { return `${formatDate(start_date, 'zh-cn')} - ${formatDate(end_date, 'zh-cn')}`; } } else if (lang === 'en-us' || lang === 'en') { if (isSameDay) { return `${formatDate(start_date, 'en-us')} - ${formatTime(end_date)}`; } else if (isSameMonth) { const endFormatted = formatDate(end_date, 'en-us').split(', '); return `${formatDate(start_date, 'en-us')} - ${endFormatted[1]}`; } else if (isSameYear) { const endFormatted = formatDate(end_date, 'en-us').split(', '); return `${formatDate(start_date, 'en-us')} - ${endFormatted[1]}`; } else { return `${formatDate(start_date, 'en-us')} - ${formatDate(end_date, 'en-us')}`; } } } export function returnEscapeHtml(unsafe) { return unsafe .replace(/&/g, "&") .replace(//g, ">") .replace(/"/g, """) .replace(/'/g, "'"); } export function convertRichTextToWXML(html) { // 定义一个正则表达式来匹配常见的HTML标签 const htmlTagRegex = /<\s*(\w+)(?:\s+(?:[\w:-]+)(?:\s*=\s*(?:"[^"]*"|'[^']*'|[\w-]+)|[\w-]*))?\s*(?:\/>|>([\s\S]*?)<\/\1>)/g; // 定义一个函数来转换单个标签 function convertTag(tag, content) { // 这里可以根据需要转换不同的标签,例如将
转换为