import { ref } from 'vue' import { createGlobalState, useLocalStorage } from '@vueuse/core' import axios from 'axios' export const useStockQuote = createGlobalState(() => { const stockQuote = useLocalStorage('stockQuote', { "Open": "", "Volume": "", "DayRange": "", "WeekRange": "", "MarketCap": "", "change": [ "", "" ] }) // 计算美东时间的当前时间 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') stockQuote.value=res.data } return { formatted, getStockQuate, stockQuote } })