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