先界定服務地點

預約頁面即使向兩個人顯示同一個鐘點,也可能令他們理解成不同的會面。企業先要定義出售的是甚麼:在香港場地按香港本地時間到場、在某個確定時刻進行視像會議,還是按導師或分店所在地的固定鐘點重複上課。先寫下業務規則,再選程式工具。如果服務是在香港店面進行,顧客旅行時,服務時間仍應以香港當地時間為準;遙距諮詢則可另外顯示顧客所在地的換算時間,但要清楚標示那只是輔助顯示。服務地點與顧客看到的時區是兩項不同資料。瀏覽器或手機設定不能證明服務在哪裏進行。確認頁應列明地點或遙距形式,並把正式服務時間放在換算時間旁邊。這項規則會決定顧客換手機、員工出差或顧客旅行後,系統應否改動預約。

同時保存確定時刻及業務脈絡

已確認的一次性預約,應保存沒有歧義的確定時刻,通常以 UTC 表示,同時保留議定時使用的本地日期、時間及時區識別碼。RFC 3339 的時間戳可寫出時差或 UTC 標記;但只有時差數值,無法完整描述某地日後的本地時間規則。預約紀錄可包含編號、服務場地時區(例如 Asia/Hong_Kong)、議定的本地日期和鐘點、換算後的確定時刻、時長、狀態,以及向顧客顯示的時區。不要只保存「星期五十點」一類字串,因為它缺少日期、時區及議定脈絡;亦不要讓瀏覽器每次按目前裝置設定重新推算正式時刻。伺服器完成驗證後應保存換算結果,並留存原來議定的本地條款,方便客服核對。如果日後時區資料更新,令未來預約出現衝突,企業須決定維持原確定時刻還是承諾的本地鐘點,並通知受影響人士。

地區時區不等於固定時差

「+08:00」等固定時差只能描述某個時刻,不能代表一個地區未來每一天的時間規則。IANA 時區資料庫記錄各地時制變化;海外顧客由預約到出席之間,也可能跨過夏令時間轉換。MDN 說明地區時區在推算日後時間時的重要性:某些本地鐘點可能對應兩個確定時刻,亦可能因跳鐘而根本不存在。香港場地以 Asia/Hong_Kong 為基準通常較直接,但海外參與者的顯示時區仍可能轉換。系統應由預約的確定時刻換算至所選顯示時區,不能沿用上月記下的固定時差。除了鐘點,還要顯示日期及時區名稱;香港深夜在外地可能仍是前一天。顧客修改顯示時區時,不應暗中改動正式預約。換算結果只是觀看方式,只有雙方明確同意改期,業務事件才應改變。

用跨境預約檢查規則

假設香港維修公司在指定日期的香港時間上午十時提供視像評估。海外顧客可在第二行看到有時區標示的當地日期及鐘點。確認書把「10:00,Asia/Hong_Kong」列為正式服務時間,另列顧客選用的顯示時區,但不當作第二項預約。公司發出對應確定時刻的日曆邀請,並核對電郵與帳戶頁面是否一致。顧客其後飛往另一城市,原確認仍指向同一時刻;輔助的當地時間可以按新所在地重新顯示。若員工提議改為香港時間十一時,這是改期:同時顯示舊時間與建議時間,按業務程序取得接受,再發更新邀請。此例沒有假設海外固定時差,因為真正換算取決於日期和地區時區。實際驗收也很簡單:不用懂時區程式,顧客仍應說得出哪一個顯示時間才是正式承諾。

重複預約須另訂規則

每星期在某城市上午十時開課,通常代表依該地本地鐘點重複舉行;它不等於在 UTC 時間戳上每次加七個二十四小時。如果服務地點有轉換時制,兩種演算法會得出不同的牆上鐘點。iCalendar 規範分別處理日期時間形式及重複規則,說明重複安排需要明確時區脈絡。企業應先決定整個系列跟隨場地本地十時、固定 UTC 時刻,還是逐次確認。到場服務一般較重視場地鐘點,但仍須由業務定義。保存系列規則及時區,並提前產生足夠的個別節次,以便分配名額和通知顧客。時制變化、假期及休業日附近要額外檢查。系列規則不應覆蓋曾經單獨改期的節次。編輯系列時,頁面要列出哪些未來節次會變,保留過往出席紀錄,並通知確定時刻受到影響的人。

把輸入與確認視為同一流程

時間選擇器應在顧客揀時段之前寫明時區。若服務在香港場地進行,可在時段旁標示「香港時間」;遙距會議若容許選擇顯示時區,選擇應明確而且可更改。提交時仍要由伺服器驗證,因為頁面開啟期間,名額、營業時間或時區規則可能改變。如發生衝突,應指出原時段已失效並提供附近可選時段,不應默默搬動預約。覆核頁應列出日期、鐘點、時區、場地或會面方式、時長及適用的到場指示。確認電郵要重複相同的正式條款,日曆檔也須指向同一事件。不要單靠 CST 等可指不同地區的縮寫。客服需要查證時,應能看到顧客接受時所見的文字,以及日後每次改期改動了甚麼。

測試不存在及重複的鐘點

即使公司主要在香港營運,也應選一個會轉換時制的海外場地建立測試。春季跳鐘時,測試某本地鐘點根本不存在;秋季重複鐘點時,測試同一鐘點可能對應兩個確定時刻。MDN 記載了明確的歧義處理方式,包括拒絕輸入。面向顧客的介面遇上不存在或有歧義的時間,通常宜要求重新選擇或確認,較容易向顧客解釋,避免暗中移動。另要測試:香港時段在外地顯示成前一天、確認後裝置時區改變、長時間開著的表格過期,以及日曆邀請被其他程式匯入。把伺服器紀錄、網頁、電郵、日曆檔和員工日程,逐一對照同一確定時刻。一般同區中午例子發現不到這類問題。把案例和預期輸出列成表,日後更新程式庫或作業系統時才可重複驗證。

清楚處理改期及資料更新

系統要分辨兩種變動。顧客或員工主動改期時,應產生新的議定時刻、更新名額並發通知。另一種是軟件使用的未來時區規則改變;即使沒有人要求改期,畫面上的換算時間也可能變。紀錄同時保留議定的服務地點鐘點與確定時刻,才可查清差異。企業應預先決定罕見的規則變更出現時,哪一項承諾優先,以及如何聯絡受影響顧客。不要改寫歷史預約,令它看起來像一直採用今日的規則。真正改期後,要核對待發提醒及日曆邀請,避免舊訊息把顧客帶往舊時段。客服需要看見原確認、建議改動、接受及最終提醒的時間線,而非只有一個可被覆寫的時間欄位。

訂出可執行的驗收方法

上線前選一組具代表性的例子:香港到場服務、身在海外的遙距顧客、重複系列、支援地區的夏令時間邊界,以及曾單獨改期的節次。每例寫下服務地點的本地鐘點、預期確定時刻、顧客顯示時區和確認文字,讓產品、客服和工程人員核對同一份資料。檢查瀏覽器時區變更只影響輔助顯示;真正改期則會改變事件和通知;沒有定義處理方法的不存在時間不能被接受。上線後可抽樣核對真實確認書與伺服器紀錄,但測試報告不要暴露個人資料。發現問題時,應回到顧客實際風險:會否去錯時間、收到互相矛盾的訊息,或無故失去名額?這樣才能把工程工作連到服務可靠性,而不是只討論用了哪個日曆程式庫。

正式採用前的核對

  • 分開標示服務地點時區及顧客顯示時區。
  • 測試時制轉換及跨日換算。
  • 把網頁、電郵、日曆邀請及伺服器紀錄對照同一時刻。

資料來源及延伸閱讀