import { ref } from 'vue' import { createGlobalState, useLocalStorage } from '@vueuse/core' import axios from 'axios' import dayjs from 'dayjs' import utc from 'dayjs/plugin/utc' import timezone from 'dayjs/plugin/timezone' export const useStockQuote = createGlobalState(() => { const stockQuote = useLocalStorage('stockQuote', { "Open": "", "Volume": "", "DayRange": "", "WeekRange": "", "MarketCap": "", "change": [ "", "" ] }) 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' }; let lastTradingDay dayjs.extend(utc) dayjs.extend(timezone) /* 美股的常规发行日(交易日)为周一至周五,遇到法定假日则顺延。 如果你只需要“上一个交易日”(不考虑法定假日)的情况下 获取当前美东时间。 如果今天是周一,则上一个交易日为上周五。 如果今天是周日,则上一个交易日为上周五。 如果今天是周六,则上一个交易日为周五。 其他情况,上一个交易日为昨天。 */ 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) if (res.status === 200) { if (res.data.status === 0) { lastTradingDay = dayjs(res.data.data[0].date) } return lastTradingDay.format('MMM D, YYYY') + ' 4:00 PM [EDT]' } } 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 } } } return { formatted, getStockQuate, stockQuote } })