可自定义的时区显示
Closed this issue · 2 comments
mokurin000 commented
用户应该可在profile决定自己是否公开时区,
并且可以设置自己的时区。(默认选项是浏览器提供的时区)
设置中选择是否显示为自己时区对应时间,否则使用评论者所在时区(如果公开),或者自己时区对应时间(如果不公开)。如果时区和自己时区不同,应该在时间后提示。
WeepingDogel commented
在 Vue 版本将会修复这个问题,
因为 Vue 版本做了前后端分离,前端可以对服务器时间进行换算
qwq
WeepingDogel commented
暂时没有使用自定义时区的方法,在新版本中,启用了自动检测浏览器和服务端的时区然后在前端进行转换的方法。
但不管怎么说应该也算解决了
前端将会做这些事
import { defineStore } from "pinia";
import axios from "axios";
import moment from "moment-timezone";
export const Timezone = defineStore(
'TimeZone',
{
state: () => ({
TimeZoneServer: '',
TimeZoneBrowser: ''
}),
actions: {
GetTheTimeZoneOfServer(){
axios.get('/userdata/get/timezone')
.then(
(response) => {
// console.log(response);
this.TimeZoneServer = response.data;
console.log(this.TimeZoneServer);
}
)
.catch(
(error) => {
// console.log(error);
return error.detail;
}
)
},
GetTheLocalTimeZone(){
const TimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
this.TimeZoneBrowser = TimeZone;
console.log(this.TimeZoneBrowser);
},
CaculateTheCorrectDate(OriginalDate: String){
const dateString = OriginalDate;
return moment.tz(dateString, this.TimeZoneServer).clone().tz(this.TimeZoneBrowser).format('YYYY-MM-DD HH:mm');
}
}
}
)
而后端将会做这些事
from tzlocal import get_localzone
@userdata_router.get("/get/timezone")
def get_server_timezone():
tz = str(get_localzone())
return tz