Leon 1 anno fa
parent
commit
73a89f6415
1 ha cambiato i file con 29 aggiunte e 4 eliminazioni
  1. 29 4
      src/_health/base/new_date_time_picker.tsx

+ 29 - 4
src/_health/base/new_date_time_picker.tsx

@@ -4,6 +4,7 @@ import { useEffect, useState } from "react";
 import './new_timepicker.scss'
 import dayjs from "dayjs";
 import { MainColorType } from "@/context/themes/color";
+import { TimeFormatter } from "@/utils/time_format";
 
 export default function NewDateTimePicker(props: {
     count?: number, date?: string, time?: string, onChange?: any, color?: string,
@@ -14,6 +15,27 @@ export default function NewDateTimePicker(props: {
     const [values, setValues] = useState<any>([0, 0, 0])
     const [loaded, setLoaded] = useState(false)
 
+    function 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;
+    }
+
+
     function longDatas() {
         let result: any = []
         var max = props.maxTimestamp ?? new Date().getTime()
@@ -29,11 +51,14 @@ export default function NewDateTimePicker(props: {
         while (date <= currentDate) {
             var dt = dayjs(date.getTime())
             var string = global.language == 'en' ? dt.format('MMM D') : dt.format('MMMD日')
-            if (dt.isSame(today, 'day') && dt.isSame(today, 'month') && dt.isSame(today, 'year')) {
-                string = (global.language == 'en' ? 'Today, ' : '今天 ') + string
+            if (TimeFormatter.isToday(date.getTime())) {
+                string = (global.language == 'en' ? 'Today' : '今天 ')// + string
+            }
+            else if (TimeFormatter.isYesterday(date.getTime())) {
+                string = (global.language == 'en' ? 'Yesterday' : '昨天 ')// + string
             }
-            else if (dt.isSame(yesterday, 'day') && dt.isSame(yesterday, 'month') && dt.isSame(yesterday, 'year')) {
-                string = (global.language == 'en' ? 'Yesterday, ' : '昨天 ') + string
+            else if (isTimestampInThisWeek(date.getTime())){
+                string = dt.format('dddd')
             }
             result.push(string)
             date.setDate(date.getDate() + 1)