2023年政策修订增补工作正在进行中,欢迎参与!
  • Moegirl.ICU:萌娘百科流亡社群 581077156(QQ),欢迎对萌娘百科运营感到失望的编辑者加入
  • Moegirl.ICU:账号认领正在试运行,有意者请参照账号认领流程

模板:TimeZone/convert/doc

萌娘百科,萬物皆可萌的百科全書!轉載請標註來源頁面的網頁連結,並聲明引自萌娘百科。內容不可商用。
跳至導覽 跳至搜尋

簡介

這個模板會根據指定的日期和時區,換算出新時區下的日期,並按指定的格式輸出wiki文本。

雖然沒有硬性規定,但是建議在使用這個模板的頁面的序章中添加{{TimeZone}}。

參數

使用格式:
參數全稱
{{TimeZone/convert
|      year = <!-- 年 -->
|       mon = <!-- 月 -->
|       day = <!-- 日 -->
|      hour = <!-- 时 -->
|       min = <!-- 分 -->
|       sec = <!-- 秒 -->
|o_timezone = <!-- 原来的时区 -->
|c_timezone = <!-- 现在的时区 -->
|<!-- 格式化字符串 -->
}}
參數簡寫
{{TimeZone/convert
|   y = <!-- 年 -->
|   m = <!-- 月 -->
|   d = <!-- 日 -->
|   h = <!-- 时 -->
|   i = <!-- 分 -->
|   s = <!-- 秒 -->
|o_tz = <!-- 原来的时区 -->
|c_tz = <!-- 现在的时区 -->
|<!-- 格式化字符串 -->
}}
  • yeary:原時區下的年份,默認值為在原時區下當前時間的年份。
  • monm:原時區下的月份,默認值為在原時區下當前時間的月份。
  • dayd:原時區下的日期,默認值為在原時區下當前時間的日期。
  • hourh:原時區下的小時數,默認值為在原時區下當前時間的小時數。
  • mini:原時區下的分鐘數,默認值為在原時區下當前時間的分鐘數。
  • secs:原時區下的秒數,默認值為在原時區下當前時間的秒數。
  • o_timezoneo_tz:原來的時區,默認值為用戶當前所在的時區。
  • c_timezonec_tz:現在的時區,默認值為用戶當前所在的時區。
  • {{{1}}}:第一個匿名參數,指示如何格式化新日期。

原理

了解模板的實現原理有助於對模板的理解和運用。 以下說明了模板的實現以及工作原理:

  1. 在條目序言中添加{{TimeZone}},將會定義一個全局變量{{#var:timezone}}
    • {{#var:timezone}}的值為使用{{TimeZone}}時指定的時間參數,若並未指定時間參數,則使用[[模塊:TimeZone]]計算得到的用戶當前時區。
  2. 計算原來的時區和現在的時區
    1. 計算o_timezoneo_tz
      • 若兩個參數的值均為空,則使用[[模塊:TimeZone]]計算得到的用戶當前時區。
    2. 計算c_timezonec_tz
      • 若兩個參數的值均為空,則使用{{#var:timezone}}的值;
      • {{#var:timezone}}的值為空(【不建議】當未添加{{TimeZone}}的情況下),則使用[[模塊:TimeZone]]計算得到的用戶當前時區。
  3. 依次計算:
    1. yeary:若兩個參數的值均為空,則使用在原時區下當前時間的年份。
    2. monm:若兩個參數的值均為空,則使用在原時區下當前時間的月份。
    3. dayd:若兩個參數的值均為空,則使用在原時區下當前時間的日期。
    4. hourh:若兩個參數的值均為空,則使用在原時區下當前時間的小時數。
    5. mini:若兩個參數的值均為空,則使用在原時區下當前時間的分鐘數。
    6. secs:若兩個參數的值均為空,則使用在原時區下當前時間的秒數。
  4. 匯總所有參數,使用[[模塊:TimeZone]]計算新日期,並根據{{{1}}}格式化新日期。
  5. 返回結果。

格式化參數

目前{{TimeZone/convert}}共支持42個格式化參數:

示例時間:2024年11月22日 (星期五) 上午 09:17:22

格式化參數 說明 示例輸出

%(y) 不包含紀元的年份。如果不包含紀元的年份小於10,則顯示不具有前導零的年份。 24
%y 不包含紀元的年份。如果不包含紀元的年份小於10,則顯示不具有前導零的年份。%(y)的簡略寫法。 24
%(yy) 不包含紀元的年份。如果不包含紀元的年份小於10,則顯示具有前導零的年份。 24
%(yyyy) 包括紀元的四位數的年份。 2024
%(gg) 時期或紀元。如果要設置格式的日期不具有關聯的時期或紀元字符串,則忽略該模式。 20
%(M) 月份數字。一位數的月份沒有前導零。 11
%M 月份數字。一位數的月份沒有前導零。%(M)的簡略寫法。 11
%(MM) 月份數字。一位數的月份有一個前導零。 11
%(MMM) 月份的縮寫名稱。 十一
%(MMMM) 月份的縮寫名稱。 十一月
%(D) 年中的某一天。 326
%D 年中的某一天。%(D)的簡略寫法。 326
%(DD) 這一年共有多少天。 366
%(d) 月中的某一天。一位數的日期沒有前導零。 22
%d 月中的某一天。一位數的日期沒有前導零。%(d)的簡略寫法。 22
%(dd) 月中的某一天。一位數的日期有一個前導零。 22
%(w) 周中的某一天。 6
%w 周中的某一天。%(w)的簡略寫法。 6
%(ww) 周中某天的縮寫名稱。
%(www) 周中某天的縮寫名稱。 星期五
%(h) 12 小時制的小時。一位數的小時數沒有前導零。 9
%h 12 小時制的小時。一位數的小時數沒有前導零。%(h)的簡略寫法。 9
%(hh) 12 小時制的小時。一位數的小時數有一個前導零。 09
%(H) 24 小時制的小時。一位數的小時數沒有前導零。 9
%H 24 小時制的小時。一位數的小時數沒有前導零。%(H)的簡略寫法。 9
%(HH) 24 小時制的小時。一位數的小時數有一個前導零。 09
%(m) 分鐘。一位數的分鐘數沒有前導零。 17
%m 分鐘。一位數的分鐘數沒有前導零。%(m)的簡略寫法。 17
%(mm) 分鐘。一位數的分鐘數有一個前導零。 17
%(s) 秒。一位數的秒數沒有前導零。 22
%s 秒。一位數的秒數沒有前導零。%(s)的簡略寫法。 22
%(ss) 秒。一位數的秒數有一個前導零。 22
%(sss) Unix時間戳(Unix timestamp)。從格林威治時間1970年01月01日00時00分00秒起至現在的總秒數。 1732238242
%(t) 一天中時間段的更加詳細的提示信息。 上午
%t 一天中時間段的更加詳細的提示信息。%(t)的簡略寫法。 上午
%(tt) 一天中時間段的更加詳細的提示信息。 上午
%(z) 時區偏移量(「+」或「-」後面僅跟小時)。一位數的小時數沒有前導零。例如,太平洋標準時間是「-8」。 +8
%z 時區偏移量(「+」或「-」後面僅跟小時)。一位數的小時數沒有前導零。例如,太平洋標準時間是「-8」。%(z)的簡略寫法。 +8
%(zz) 時區偏移量(「+」或「-」後面僅跟小時)。一位數的小時數有前導零。例如,太平洋標準時間是「-08」。 +08
%(zzz) 完整時區偏移量(「+」或「-」後面跟有小時和分鐘)。一位數的小時數和分鐘數有前導零。例如,太平洋標準時間是「-08:00」。 +08:00
%(%) 表示字符「%」。 %
%% 表示字符「%」。%(%)的簡略寫法。 %

用法

簡單示例:
代碼
{{TimeZone|+8}}
现在是北京时间{{TimeZone/convert|%(yyyy)年%(MM)月%(dd)日 %(HH)时%(mm)分%(ss)秒}}。<br/>
当北京时间{{TimeZone/convert|y=2018|m=12|d=15|h=0|i=0|s=0|%(yyyy)年%(MM)月%(dd)日 %(HH)时%(mm)分%(ss)秒(UTC+8)}}时,太平洋时间为{{TimeZone/convert|Y=2018|m=12|d=15|H=0|i=0|s=0|%(yyyy)年%(MM)月%(dd)日 %(HH)时%(mm)分%(ss)秒(UTC-8)|c_tz=-8}}
效果
Twisted clock.jpg 除非特別註明,本頁面所有時間皆以東八區時間(UTC+08:00)為準。

現在是北京時間2024年11月22日 09時17分22秒。
當北京時間2018年12月15日 00時00分00秒(UTC+8)時,太平洋時間為2024年12月14日 17時00分00秒(UTC-8)


全球各時區時間:
主頁面:Template:TimeZone/convert/doc/全球各時區時間

高級用法

這個模板與{{TimeZone}}配合使用可以自動轉換頁面上的所有非特別註明的時間。

主頁面:Template:TimeZone

案例