stock-quote时间显示逻辑

This commit is contained in:
Phoenix 2025-05-26 14:12:54 +08:00
parent af8348107b
commit 82711a9645

View File

@ -14,23 +14,47 @@ export const useStockQuote = createGlobalState(() => {
"" ""
] ]
}) })
const date = new Date();
const options = {
year: 'numeric',
month: 'short',
day: 'numeric',
hour: 'numeric',
minute: '2-digit',
hour12: true,
timeZone: 'America/New_York',
timeZoneName: 'short'
};
const formatted = ref(date.toLocaleString('en-US', options)) // 计算美东时间的当前时间
const getStockQuate= async()=>{ function getTargetFridayTime() {
// 当前美东时间
const now = new Date(new Date().toLocaleString('en-US', { timeZone: 'America/New_York' }))
// 获取今天是周几0=周日, 1=周一, ..., 5=周五, 6=周六)
const day = now.getDay()
// 计算本周五的日期
const diffToFriday = 5 - day
const thisFriday = new Date(now)
thisFriday.setDate(now.getDate() + diffToFriday)
thisFriday.setHours(16, 0, 0, 0) // 设置为16:00:00
if (now >= thisFriday) {
// 当前时间在本周五16:00及以后显示本周五16:00
return thisFriday
} else {
// 当前时间早于本周五16:00显示上周五16:00
const lastFriday = new Date(thisFriday)
lastFriday.setDate(thisFriday.getDate() - 7)
return lastFriday
}
}
const options = {
year: 'numeric',
month: 'short',
day: 'numeric',
hour: 'numeric',
minute: '2-digit',
hour12: true,
timeZone: 'America/New_York',
timeZoneName: 'short'
};
const formatted = ref(getTargetFridayTime().toLocaleString('en-US', options))
const getStockQuate= async()=>{
const res = await axios.get('https://saas-test.szjixun.cn/api/chart/forward/test') const res = await axios.get('https://saas-test.szjixun.cn/api/chart/forward/test')
stockQuote.value=res.data stockQuote.value=res.data
} }
return { return {
formatted, formatted,
getStockQuate, getStockQuate,