隨機日期產生器會從一個含頭含尾的 YYYY-MM-DD 範圍中均勻抽取日曆日期,起始日期、結束日期以及中間每一天都有相同的被選機率。從 2024-02-28 到 2024-03-01 的一個範例執行,有可能回傳 2024-02-28、閏日 2024-02-29,或 2024-03-01,而對中間日期並沒有任何偏誤,因為這個工具是對整數的 UTC 日序位置進行取樣,而不是用本地時間算術一路遞增。那一句話就是運作定義:在封閉區間內機會均等、以穩定的 ISO 日曆日期格式表示,並受到驗證規則的約束,在遇到不可能存在的日期時直接拒絕,而不是悄悄修補。下面這個範例聚焦於這個定義在實際使用時的樣貌:小幅抽樣可能回傳哪些列、相同的範圍在單一日期與多日期請求下會有什麼不同、閏日與單日範圍如何融入,以及底層限制與格式之間如何互動。正在尋找可以直接複製到測試固件(Fixture)中的範例輸出,或想要建立抽樣心智模型的讀者,都會落在同一組功能上 — 含頭含尾的端點、1 到 1,000 的數量、可選擇的不重複模式,以及嚴格的 YYYY-MM-DD 驗證 — 因為這些功能驅動了這個工具所產生的每一個結果。

隨機日期產生器會輸出什麼
每一個隨機日期產生器範例背後都有一份小型契約:使用者挑選一個起始日期與結束日期、挑選一個介於 1 到 1,000 之間的數量,並決定結果中是否允許同一個日期出現超過一次。輸出是一份以 ISO 格式 YYYY-MM-DD 表示的日曆日期清單,以均勻分布的方式從含頭含尾的範圍中取樣而成。資料不會被上傳,頁面也絕不會混入一天之中的時間或時區偏移,因為這個工具是直接從 UTC 元件來格式化日期,而不是從本地午夜加上固定小時數來推算。
從 2025-01-01 到 2025-01-31 抽取三個日期,可能產生 2025-01-07、2025-01-22 與 2025-01-14;以同一個範圍與數量再抽一次,則可能產生 2025-01-19、2025-01-03 與 2025-01-30。兩次執行都正確 — 均勻取樣並沒有所謂的「正確」答案,任何具體的樣本都只是說明一個可能的合法抽樣。
輸入與輸出一覽
| 控制項 | 可接受的值 | 錯誤時的結果 |
|---|---|---|
| 起始日期 | 介於 0001-01-01 與 9999-12-31 之間的 YYYY-MM-DD | 輸入無效錯誤,不產生任何結果 |
| 結束日期 | YYYY-MM-DD,且不得早於起始日期 | 若早於起始日期則報錯 |
| 數量 | 1 到 1,000 的整數 | 若為空白、小數、零、負數或超過 1,000 則報錯 |
| 重複 | 允許或不允許 | 不允許重複模式在數量超過範圍大小時會報錯 |
| 輸出 | YYYY-MM-DD 的行,每列一個 | 任一輸入變更時重置 |
隨機日期產生器範例:依設定可得到的結果
了解隨機日期產生器會產生什麼最清楚的方式,就是觀察它在常見範圍下的運作情形。以下抽樣描述當你開啟 隨機日期產生器並執行幾次範例請求時可能看到的真實輸出;每一列都會是所列設定下的一筆有效個別結果。
橫跨閏年區間的單一日期
範圍:2024-02-28 至 2024-03-01,數量:1,允許重複。可選集合恰好包含三個日曆日:2024-02-28、2024-02-29 與 2024-03-01。單次抽樣會回傳這三天中的某一天。因為 2024 可被 4 整除且不是世紀年,此處 2 月 29 日是有效的;工具採用的嚴格格里高利曆驗證會接受這個項目,而不是拒絕整個範圍。
從單一一月抽出五個不重複的日期
範圍:2025-01-01 至 2025-01-31,數量:5,不允許重複。這個含頭含尾的區間共有 31 個可選日,因此 5 遠低於上限。一次抽樣可能回傳像 2025-01-09、2025-01-15、2025-01-22、2025-01-27 與 2025-01-31 這樣的列。因為關閉了重複功能,所以不會有列重複,輸出也不可能包含比底層範圍支援數量更多的列。
從整個季度抽出七個日期
範圍:2025-04-01 至 2025-06-30,數量:7,允許重複。可選日期橫跨整個第二季,七次抽樣給出一小份能一眼看完的樣本。舉例來說,其中一份清單可能是:2025-04-12、2025-05-02、2025-05-19、2025-04-30、2025-06-08、2025-06-22 與 2025-05-15。因為重複模式已開啟,以同一個範圍再抽一次,清單中允許出現重複的日期。
單日範圍,每次都一樣
範圍:2025-07-04 到 2025-07-04,數量:1。這個含頭含尾的範圍恰好只有一天,工具在每次請求時都會回傳那一天:2025-07-04。若想從單日範圍中看到同一個日期出現兩次,你需要將模式設為允許重複,並把數量設為 2 或以上。即使如此,兩列都會是 2025-07-04。
產生器不會接受的邊界輸入
兩個容易看錯的例子有助於說明驗證機制如何運作:
- 2025-04-31:四月只有 30 天,因此產生器會回報輸入無效,而不是往前遞進到 2025-05-01。
- 1900-02-29:1900 是世紀年且無法被 400 整除,根據格里高利曆規則它並非閏年。這個項目會被拒絕,就跟 2023-02-29 一樣。
如何自行產生隨機日期範例
最快的路徑就是開啟工具、設定三個控制項,然後讀回結果。下列順序對應介面所要求的步驟。
- 以 YYYY-MM-DD 格式輸入或挑選起始日期。請使用四位數的年份、兩位數的月份與兩位數的日期。工具會從一個 UTC Date 物件讀回年月日時,確認該項目符合格里高利曆,因此像 2025-02-29 這類的值會被拒絕。
- 以相同格式輸入或挑選結束日期。結束日期必須等於或晚於起始日期。單日範圍 — 起始與結束相同 — 是有效的,而且每次都會回傳該日期。
- 輸入 1 到 1,000 的數量。如果關閉了重複功能,數量同時也必須不得超過含頭含尾範圍中的日曆天數。空白、零、負數、小數或超出範圍的項目,會產生清楚的錯誤,而不是產生部分結果。
- 選擇是否允許重複。如果接受重複就保留預設;當每列輸出都必須是不同的日曆日時,請開啟不重複模式。
- 產生日期並驗證所顯示的範圍與數量。如果在執行後更改了數量、端點或重複模式,先前的清單會被清除,如此一來,舊的結果便不會看起來與新設定吻合。
- 複製或記錄你需要的值。每一列都是嚴格的 YYYY-MM-DD 字串,適合貼進試算表、固件檔案或提示詞(Prompt)中。
隨機日期範例的實用情境
讀者搜尋隨機日期產生器範例,通常是有具體的下游工作要做,而非出於單純好奇。下列對應關係說明了常見的使用情境,以及這些情境通常會用到的設定。數值的挑選以性質來描述,因為任何具體清單都取決於抽樣本身;請執行該工具以取得符合你情境的特定列。
| 使用情境 | 典型的範圍樣式 | 典型的數量 | 重複 |
|---|---|---|---|
| 軟體測試固件(Fixture) | 用於穩定快照的固定歷史年份 | 少量 (5 到 50) | 允許 |
| 寫作提示與腦力激盪 | 與故事相關的年份或世紀 | 少量 (1 到 12) | 允許 |
| 隨機練習與學習單 | 近期年份或即將到來的年份 | 中等 (10 到 100) | 需要相異性時不允許 |
| 範例日曆或行程表 | 單月或單季 | 少量 | 兩者皆可 |
| 圖表或表格的示範資料集 | 單一年份 | 中等至大量 | 為了分組整潔而不允許 |
對於較大的固定序列 — 例如一整季的每個週一、長達十年的每個月一號,或是按週排定的可重現行程 — 使用專門的日期清單工具會比隨機挑選器更合適。隨機產生器的重點在於均勻抽樣,而不是列舉。
含頭含尾的端點、閏日與其他限制
當讀者將隨機日期產生器範例與自己手刻的程式碼比較時,常會浮現幾項細節。這些都不是行銷話術中的「邊緣案例」 — 它們說明了在每一次抽樣中,工具依規格會有的行為,規範可參見 ECMAScript 規格中關於 Date 物件的說明:
- 含頭含尾的端點。範圍兩側都是封閉的。從 2024-12-30 到 2025-01-02 的抽樣,可能回傳這四個日曆日中的任何一個。
- 閏年驗證。2 月 29 日只有在符合格里高利閏年規則的年份才有效:可被 4 整除,但非可被 400 整除的世紀年例外。2000-02-29 與 2024-02-29 會被接受;1900-02-29 與 2023-02-29 則不會。
- 月份與日期溢位。像 2025-04-31 這樣的項目會回報輸入無效,而不是悄悄進位到 5 月 1 日;像 2025-13-01 這樣的項目也會回報輸入無效,而不是迴繞到 2026-01-01。
- 日光節約行為。產生器並不會對起始日期加上 24 個本地小時,因此輸出在時鐘切換附近不會跳過或重複某個日曆日期。每一個值都是透過 UTC 取值器回填格式化的 UTC 日序。
- 不重複模式的大小上限。當關閉重複功能時,請求的數量不得超過範圍中含頭含尾的天數。工具會回報清楚的錯誤,而不是回傳較短的清單,或悄悄把重複功能再開啟。
- 可重現性說明。瀏覽器的 Web Crypto 在這個介面中刻意不支援設定隨機數種子(Seed)。若需要可重現的軟體測試,請儲存所抽出的日期,或使用你自己另行實作的有種子測試產生器。
如果想要一份可列印的輸入、範圍與限制摘要,隨機日期產生器速查表以單頁參考的形式逐一說明了相同的控制項。
為什麼範例刻意看起來不規則
檢視隨機日期產生器範例的讀者可能會注意到,各列看起來並不平均——有群聚、有空隙、跨次抽取出現重複,或在較大的範圍內呈現異常小的分布。這種不平均正是重點。均勻抽樣代表每個行事曆日期擁有與其他任何行事曆日期相同的被選機率,而不是指小樣本會看起來均勻分布。一個常見的錯誤是從 365 天的範圍中讀出一個 5 列的清單,然後假設挑選器有偏差;當這 5 列落在年份中不平均的位置時,工具實際上正是照它所宣稱的方式運作。
隨機性本身來自瀏覽器的 Web Crypto 的 getRandomValues API,透過無符號 32 位元字存取取,並透過拒絕抽樣對應到日序數,如此一來模數運算就不會讓某些日期多出一個可能的來源值。這種對應在範圍大小無法整除 2^32 時至關重要——例如,涵蓋端點的 2025-01-01 至 2025-01-31 範圍共有 31 天,並非 2 的冪次。相同的方法會拒絕未植入種子的偽隨機產生器,因此同一視窗中兩次連續抽取不會僅因為底層數字可重現就相符。
不過,一旦下游流程新增或篩選日期,抽樣的公平性就不再是均勻的。週末排除、國定假日、組織封鎖日期,以及歷史上的曆法轉換,都不會由工具套用,因此所產生的日期在使用於任何業務、預訂或排程流程之前仍需要再次檢查。競賽活動也是如此:每次抽取機率相等並不能證明某一次特定執行會看起來均勻分布;高風險的抽取應使用有文件記載且經過稽核的程序,而不是一般的瀏覽器工具。
如果您正在權衡選項,隨機 IP 產生器入門指南:初次完整解說對此有詳細說明。