亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

未來的預訂維護業務時區以在其他時區顯示數據

未來的預訂維護業務時區以在其他時區顯示數據

慕沐林林 2023-02-24 11:06:54
我正在為一家企業設置一個網絡應用程序,該應用程序接受未來的預訂,也可以重復進行。目前,只有商家可以進行預訂。商業規則:該應用程序必須根據帳戶注冊時提供的公司地址為用戶保存時區。所有活動都將在營業地址舉行。更新:根據評論,此規則將更改為:將向使用地理編碼服務的用戶推薦時區(在找到匹配項的情況下),但用戶必須確認他們的時區。當從另一個時區登錄時,webapp 應用程序預訂系統仍應向用戶顯示為設置為業務時區。(可能的情況是用戶正在國外開會,但仍想查看他們的預訂)。這應該意味著他們仍然可以像以前一樣使用系統,例如。通過添加新預訂。但是,我認為這意味著系統必須忽略用戶的本地時區,并將業務時區應用于任何預訂事件。我有一個為同一時區內的用戶工作的預訂系統。但是,當他們更改時區時,未來的預訂日歷就會中斷。我的應用程序是帶有 postgresql 的 nodeJS。我感到困惑的是關于日期時間我應該堅持什么,以及要執行哪些相關轉換。我認為始終保存客戶端區域設置日期時間(即使不使用,因為要求可能會更改)以及 UTC 時間是明智的。但我想我還必須構建一個日期(在 javascript 中),它采用所選的日期時間并將業務時區應用于此(使用例如?moment.tz.setDefault("America/New_York"))。查看日程安排信息時,我不確定如何在客戶端上收到此日期。如何確保它與業務時區一起顯示?
查看完整描述

1 回答

?
MM們

TA貢獻1886條經驗 獲得超2個贊

您應該始終存儲與事件相關的時區。由于您說“所有活動都將在公司地址舉行”,因此公司的時區是相關的。

如果這些是面對面的實際事件,則用戶當前的本地時區根本不相關。例如,我希望如果我在洛杉磯預約牙醫,即使我是從紐約預約的,我也會指定洛杉磯的時間。

但是,如果事件是虛擬在線事件,那么您可能還想在 UX 中添加一些邏輯以顯示目標時區的時間和等效的本地時間。例如,如果我下周要與一個在洛杉磯的人進行視頻通話,而我今天恰好在紐約,那么你不知道通話時我是否還在紐約,或者是否到那時我已經去洛杉磯旅行了。您應該允許我選擇我在哪個時區創建約會,并顯示那里的時間和我的等效本地時間。

時區本身應存儲為varchar(14). IANA 2017c 為區域或鏈接標識符的各個部分建立了 14 個字符的限制,刪除了唯一超過它的鏈接名稱,Canada/East-Saskatchewan. (如果您有包含該內容的舊數據,請將其替換為America/Regina。)

對于單個約會,您應該在約會的時區中存儲約會的日期和時間。您應該將其存儲在一種數據類型中,該數據類型包含沒有任何時區或偏移量的日期和時間。 timestamp without time zone在 postgres、datetime2MS Sql Server 等中。

您可能認為您應該使用 a timestamp with timezone(或datetimeoffset在 SQL Server 中鍵入),但這會將約會固定到等效的通用時間,使用安排約會時適用的規則。如果這些規則在任命生效之前發生變化,那么任命將轉移到不同的當地時間。這通常是不希望的。重點是捕捉用戶的意圖。換句話說,如果我說“12 月 1 日早上 8 點”,那么我的意思是不管我的政府從現在到我的約會時間對我的時區做了什么。

可以將等效的 UTC 時間存儲在一個單獨的字段中,但是您需要在服務器的時區數據更新時重新計算它。(這樣的字段可以方便快速查詢即將發生的事件。)

對于定期約會,以上所有內容仍然適用,只是您需要存儲某種形式的重復規則。有些人喜歡為規則的各個組成部分存儲許多字段(例如一個字段用于“每天”,一個字段用于“星期三”,一個字段用于一天中的時間,等等)。如果愿意,您可以在數據庫中使用dateand類型。time其他人喜歡存儲帶有 chron 表達式的字符串。這真的取決于你的需要。

考慮到每次出現的 UTC 等效值不一定相同,對于定期約會尤為重要??紤]到許多時區根據夏令時是否有效來交替其 UTC 偏移量。例如,如果我在洛杉磯創建一個每天上午 10 點的約會,那么太平洋標準時間為世界標準時間下午 6 點,太平洋夏令時間為世界標準時間下午 5 點。因此,您不能只存儲 UTC 時間。同樣,捕捉用戶的意圖是最重要的部分。



查看完整回答
反對 回復 2023-02-24
  • 1 回答
  • 0 關注
  • 127 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號