Leon 1 yıl önce
ebeveyn
işleme
a0c8b5009c

+ 6 - 4
src/_health/components/choose_date_time.tsx

@@ -8,6 +8,7 @@ import NewTimePicker from "../base/new_timepicker"
 import { IconCalendar } from "@/components/basic/Icons"
 import dayjs from "dayjs"
 import NewDateTimePicker from "../base/new_date_time_picker"
+import { TimeFormatter } from "@/utils/time_format"
 
 export default function ChooseDateTime(props: {
     title?: any,
@@ -39,16 +40,17 @@ export default function ChooseDateTime(props: {
 
     function dateTitle() {
         if (props.date == '') return global.language == 'en' ? 'Date' : '日期'
-        var today = dayjs()
-        const yesterday = today.subtract(1, 'day');
         var date = dayjs(props.date)
 
-        if (today.format('YYYY-MM-DD') == date.format('YYYY-MM-DD')) {
+        if (TimeFormatter.isToday(date.unix()*1000)) {
             return global.language == 'en' ? 'Today' : '今天'
         }
-        if (yesterday.format('YYYY-MM-DD') == date.format('YYYY-MM-DD')) {
+        if (TimeFormatter.isYesterday(date.unix()*1000)) {
             return global.language == 'en' ? 'Yesterday' : '昨天'
         }
+        else if (TimeFormatter.isTimestampInThisWeek(date.unix()*1000)){
+            return date.format('dddd')
+        }
         else {
             return global.language == 'en' ? date.format('MMM D') : date.format('MMMD日')
         }

+ 20 - 0
src/utils/time_format.ts

@@ -872,5 +872,25 @@ export class TimeFormatter {
     return ''
   }
 
+  static isTimestampInThisWeek = (timestamp) => {
+    const date = new Date(timestamp);
+
+    // 获取当前日期
+    const now = new Date();
+
+    // 获取本周的第一天(周一)
+    const startOfWeek = new Date(now);
+    startOfWeek.setDate(now.getDate() - now.getDay() + 1); // 计算本周周一
+    startOfWeek.setHours(0, 0, 0, 0); // 设置为当天的开始时间
+
+    // 获取本周的最后一天(周日)
+    const endOfWeek = new Date(startOfWeek);
+    endOfWeek.setDate(startOfWeek.getDate() + 6); // 计算本周周日
+    endOfWeek.setHours(23, 59, 59, 999); // 设置为当天的结束时间
+
+    // 判断时间戳是否在本周范围内
+    return date >= startOfWeek && date <= endOfWeek;
+}
+
 }