From ab43f5f8b9f9b04b73456fd68424bd2f994d3556 Mon Sep 17 00:00:00 2001 From: qibin <1134087124@qq.com> Date: Sun, 1 Jun 2025 22:13:56 +0800 Subject: [PATCH] fixbugdate --- src/store/stock-quote/index.js | 100 ++++++++++++++++----------------- 1 file changed, 49 insertions(+), 51 deletions(-) diff --git a/src/store/stock-quote/index.js b/src/store/stock-quote/index.js index 239d046..07f6d46 100644 --- a/src/store/stock-quote/index.js +++ b/src/store/stock-quote/index.js @@ -18,65 +18,63 @@ 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' -}; - -dayjs.extend(utc) -dayjs.extend(timezone) -/* -美股的常规发行日(交易日)为周一至周五,遇到法定假日则顺延。 -如果你只需要“上一个交易日”(不考虑法定假日)的情况下 -获取当前美东时间。 -如果今天是周一,则上一个交易日为上周五。 -如果今天是周日,则上一个交易日为上周五。 -如果今天是周六,则上一个交易日为周五。 -其他情况,上一个交易日为昨天。 -*/ -const getLastTradingDay = () => { - const now = dayjs().tz('America/New_York') + const options = { + year: 'numeric', + month: 'short', + day: 'numeric', + hour: 'numeric', + minute: '2-digit', + hour12: true, + timeZone: 'America/New_York', + timeZoneName: 'short' + }; let lastTradingDay - const dayOfWeek = now.day() // 0:周日, 1:周一, ..., 5:周五, 6:周六 - const isBeforeClose = now.hour() < 16 || (now.hour() === 16 && now.minute() === 0 && now.second() === 0) + dayjs.extend(utc) + dayjs.extend(timezone) + /* + 美股的常规发行日(交易日)为周一至周五,遇到法定假日则顺延。 + 如果你只需要“上一个交易日”(不考虑法定假日)的情况下 + 获取当前美东时间。 + 如果今天是周一,则上一个交易日为上周五。 + 如果今天是周日,则上一个交易日为上周五。 + 如果今天是周六,则上一个交易日为周五。 + 其他情况,上一个交易日为昨天。 + */ - if (dayOfWeek === 0) { // 周日 - // 返回本周五16:00 - lastTradingDay = now.day(5).hour(16).minute(0).second(0).millisecond(0) - } else if (dayOfWeek === 6) { // 周六 - // 返回本周五16:00 - lastTradingDay = now.day(5).hour(16).minute(0).second(0).millisecond(0); - } else if (dayOfWeek === 1 && isBeforeClose) { // 周一16:00前 - // 返回上周五16:00,使用 subtract 方法减去 3 天 - lastTradingDay = now.subtract(3, 'day').hour(16).minute(0).second(0).millisecond(0) - } else if (isBeforeClose) { // 工作日16:00前 - // 返回前一天16:00 - lastTradingDay = now.subtract(1, 'day').hour(16).minute(0).second(0).millisecond(0) - } else { - // 工作日16:00后,返回今天16:00 - lastTradingDay = now.hour(16).minute(0).second(0).millisecond(0) + const getLastTradingDay = async () => { + const toDate = dayjs().format('YYYY-MM-DD'); + const finalFromDate = dayjs().subtract(7, 'day').format('YYYY-MM-DD'); + let url = + 'https://common.szjixun.cn/api/stock/history/list?from=' + + finalFromDate + + '&to=' + + toDate; + const res = await axios.get(url) + // console.error(res) + if (res.status === 200) { + if (res.data.status === 0) { + lastTradingDay = dayjs(res.data.data[0].date) + } + return lastTradingDay.format('MMM D, YYYY, h:mm A [EDT]') + } } - return lastTradingDay.format('MMM D, YYYY, h:mm A [EDT]') -} -const formatted = ref(getLastTradingDay()) -const getStockQuate= async()=>{ - // const res = await axios.get('https://saas-test.szjixun.cn/api/fiee/chart/forward/test') + const formatted = ref(null) + const init = async () => { + formatted.value = await getLastTradingDay() + } + init() + const getStockQuate = async () => { + // const res = await axios.get('https://saas-test.szjixun.cn/api/fiee/chart/forward/test') const res = await axios.get('https://common.szjixun.cn/api/stock/company/data') // console.error(res) - if(res.status === 200){ - if(res.data.status === 0){ - stockQuote.value=res.data.data - // console.error(stockQuote.value) + if (res.status === 200) { + if (res.data.status === 0) { + stockQuote.value = res.data.data + } } -} + } return { formatted, getStockQuate,