diff --git a/src/game_pages/detail/components/SharePopup/index.tsx b/src/game_pages/detail/components/SharePopup/index.tsx index 31fbbdf..04813f3 100644 --- a/src/game_pages/detail/components/SharePopup/index.tsx +++ b/src/game_pages/detail/components/SharePopup/index.tsx @@ -12,7 +12,12 @@ import WechatLogo from "@/static/detail/wechat_icon.svg"; // import WechatTimeline from "@/static/detail/wechat_timeline.svg"; import LinkIcon from "@/static/detail/link.svg"; import CrossIcon from "@/static/detail/cross.svg"; -import { genNTRPRequirementText, navto, genGameLength } from "@/utils/helper"; +import { + genNTRPRequirementText, + navto, + genGameLength, + formatGameStartTime, +} from "@/utils/helper"; import { waitForAuthInit } from "@/utils/authInit"; import { useUserActions } from "@/store/userStore"; import { OSS_BASE } from "@/config/api"; @@ -107,7 +112,7 @@ export default forwardRef(({ id, from, detail, userInfo }, ref) => { const startTime = dayjs(start_time); const endTime = dayjs(end_time); const dayofWeek = DayOfWeekMap.get(startTime.day()); - const gameLength = `${endTime.diff(startTime, "hour")}小时`; + const gameLength = genGameLength(startTime, endTime); const currentUserInfo = await ensureUserInfo(); try { const url = await generateShareImage({ @@ -119,7 +124,7 @@ export default forwardRef(({ id, from, detail, userInfo }, ref) => { skill_level_max, )}`, gameDate: `${startTime.format("M月D日")} (${dayofWeek})`, - gameTime: `${startTime.format("ah")}点 ${gameLength}`, + gameTime: `${formatGameStartTime(startTime)} ${gameLength}`, venueName: location_name, venueImages: image_list ? image_list : [], }); @@ -164,7 +169,6 @@ export default forwardRef(({ id, from, detail, userInfo }, ref) => { const startTime = dayjs(start_time); const endTime = dayjs(end_time); const dayofWeek = DayOfWeekMap.get(startTime.day()); - // const gameLength = `${endTime.diff(startTime, "hour")}小时`; const game_length = genGameLength(startTime, endTime); let qrCodeUrl = ""; try { @@ -193,7 +197,7 @@ export default forwardRef(({ id, from, detail, userInfo }, ref) => { title, locationName: location_name, date: `${startTime.format("M月D日")} (${dayofWeek})`, - time: `${startTime.format("ah")}点 ${game_length}`, + time: `${formatGameStartTime(startTime)} ${game_length}`, qrCodeUrl, }); } catch (e) { diff --git a/src/game_pages/sharePoster/index.tsx b/src/game_pages/sharePoster/index.tsx index 0289538..17b9dc4 100644 --- a/src/game_pages/sharePoster/index.tsx +++ b/src/game_pages/sharePoster/index.tsx @@ -14,7 +14,11 @@ import WechatLogo from "@/static/detail/wechat_icon.svg"; import WechatTimeline from "@/static/detail/wechat_timeline.svg"; import { useUserActions } from "@/store/userStore"; import { DayOfWeekMap } from "../detail/config"; -import { genNTRPRequirementText } from "@/utils/helper"; +import { + genNTRPRequirementText, + genGameLength, + formatGameStartTime, +} from "@/utils/helper"; import { waitForAuthInit } from "@/utils/authInit"; import { OSS_BASE } from "@/config/api"; import styles from "./index.module.scss"; @@ -53,7 +57,7 @@ function SharePoster(props) { const startTime = dayjs(start_time); const endTime = dayjs(end_time); const dayofWeek = DayOfWeekMap.get(startTime.day()); - const gameLength = `${endTime.diff(startTime, "hour")}小时`; + const gameLength = genGameLength(startTime, endTime); Taro.showLoading({ title: "生成中..." }); const qrCodeUrlRes = await DetailService.getQrCodeUrl({ page: "game_pages/detail/index", @@ -77,7 +81,7 @@ function SharePoster(props) { title, locationName: location_name, date: `${startTime.format("M月D日")} (${dayofWeek})`, - time: `${startTime.format("ah")}点 ${gameLength}`, + time: `${formatGameStartTime(startTime)} ${gameLength}`, qrCodeUrl, }); Taro.hideLoading(); diff --git a/src/utils/helper.ts b/src/utils/helper.ts index 372e293..5448923 100644 --- a/src/utils/helper.ts +++ b/src/utils/helper.ts @@ -164,3 +164,12 @@ export function genGameLength(startTime: Dayjs, endTime: Dayjs) { // 保留一位小数,去除末尾的0 return `${parseFloat(totalHours.toFixed(1))}小时`; } + +export function formatGameStartTime(startTime: Dayjs) { + if (!startTime || !startTime.isValid()) { + return ""; + } + const hour = startTime.hour(); + const minute = startTime.minute(); + return minute === 0 ? `${hour}点` : `${hour}点${minute}分`; +}