Help:時間序號
時間序號是模板擴展語法中,{{#time:}}的一種。時間序號的編碼是{{#time:U}}。而現在時間(2024年11月13日 03:34:20 pm)的時間序號為1731512060。
介紹
[编辑]時間序號主要用作模板倒數。而時間序號是由1970年1月1日00:00:00起的秒數,而1970年1月1日00:00:00的時間序號就是1,1970年1月1日00:00:01的時間序號就是2,如此類推。
优点
[编辑]使用時間序號作出模板倒數,較其它編碼較好。主要原因是每月的日數都不同,而每4年的天數也不同。而時間序號便會免除這些日子差異。
缺点
[编辑]使用時間序號,需要懂得如何計算。
計算方法
[编辑]以下是各種時間單位的秒數。
時間(1) | 相等於秒數 |
---|---|
秒 | 1 |
分鐘 | 60 |
小時 | 3600 |
天 | 86400 |
年 | 31536000 |
閏年 | 31622400 |
即表示,每過一秒,時間序號便會加1;每過一分鐘,時間序號便會加60;每過一天,時間序號便會加86400,如此類推。
各年份的時間序號
[编辑]以下時2000年至2020年,每年1月1日00:00:00的時間序號。
年份 | 1月1日00:00:00 時間序號 |
---|---|
2000 | 946684800 |
2001 | 978307200 |
2002 | 1009843200 |
2003 | 1041379200 |
2004 | 1072915200 |
2005 | 1104537600 |
2006 | 1136073600 |
2007 | 1167609600 |
2008 | 1199145600 |
2009 | 1230768000 |
2010 | 1262304000 |
2011 | 1293840000 |
2012 | 1325376000 |
2013 | 1356998400 |
2014 | 1388534400 |
2015 | 1420070400 |
2016 | 1451606400 |
2017 | 1483228800 |
2018 | 1514764800 |
2019 | 1546300800 |
2020 | 1577836800 |
取得時間序號
[编辑]電腦計算
[编辑]取得時間序號,可使用模板擴展語法。以下為一例子,若要取得2016年5月19日晚上7時21分52秒的時間序號,可寫以下語法:
{{#time:U|2016-5-19 07:21:52}}
便得:1463642512 或要直接得到時間序號,可使用"subst:",如下:
{{subst:#time:U|2016-5-19 07:21:52}}
便得:1463642512
人手計算
[编辑]不使用語法,亦可直接人手計算。假如要取得2009年1月21日21:54:42的時間序號,可根據上面的2009年1月1日00:00:00的時間序號計算。先把1230768000加上20天(別忘記不是21天,因為並非由1月0日開始計算),即86400 x 20,便得1232496000。然後,再加上21小時,即3600 x 21,便得1232571600。然後,再加上54分鐘,即60 x 54,便得1232574840。最後,再加上42秒,即1232574882。最終,便能得到2009年1月21日21:54:42的時間序號是1232574882。
應用例子
[编辑]假如要製作2016年3月13日21時30分正的日數及小時的倒數模板。首先,計算得出當天的時間序號:(為了方便大家明白,這個例子不使用模板,而直接使用該時間序號的數字)
{{subst:#time:U|2016-3-13 21:30:00}}
並得:1457904600
日數
[编辑]然後,把1457904600減去現在的時間序號:
{{#expr: 1457904600 - {{#time:U}} }}天 |
並顯示為"-273607460天"。但由於出現的都只是秒數,所以,可把該數目除去一天的秒數,即86400,並得:
{{#expr: ( 1457904600 - {{#time:U}}) / 86400 }}天 |
並顯示為"-3166.7530092593天"。但可能會出現不能除盡的情況,因此,可以使用舍入法。但由於舍入法只提供四舍五入的方法,即假如0.87天,將會舍入至1日。因此,可以把數目減去0.5,並得:
{{#expr: ( ( 1457904600 - {{#time:U}}) / 86400 - 0.5 ) round 0}}天 |
並顯示為"-3167天"。但由於-0.5至0的數目會舍入至-0,此項將於最後說明解決方法。
時數
[编辑]同樣地,把1457904600減去現在的時間序號,並把該數目除去一小時的秒數,並得:
{{#expr: ( ( 1457904600 - {{#time:U}}) / 86400 - 0.5 ) round 0}}天{{#expr: ( 1457904600 - {{#time:U}} ) / 3600 }}小時 |
並顯示為"-3167天-76002.072222222小時"。但由於得出的小時數目,未減去已計算的天數。因為,需要先減去天數。並得:
{{#expr: ( ( 1457904600 - {{#time:U}}) / 86400 - 0.5 ) round 0}}天{{#expr: (1457904600 - {{#time:U}}) / 3600 - ( ( ( ( 1457904600 - {{#time:U}}) / 86400 - 0.5 ) round 0 ) * 24 ) }}小時 |
並顯示為"-3167天5.9277777777752小時"。但同樣地,可能會出現不能除盡的法況,因此需要運用舍入法,並同樣地減去0.5。並得:
{{#expr: ( ( 1457904600 - {{#time:U}}) / 86400 - 0.5 ) round 0}}天{{#expr: ( ( (1457904600 - {{#time:U}}) / 3600 - ( ( ( ( 1457904600 - {{#time:U}}) / 86400 - 0.5 ) round 0 ) * 24 ) ) -0.5 ) round 0}}小時 |
並顯示為"-3167天5小時"。
最後步驟
[编辑]倒數器的日子始終都會到達。其後,便會出現負數。假如不想出現負數,可使用另一個模板語法{{#ifeq:}}。別忘記先前天數曾經減去0.5,因為,0.5天的時間序號是43200。並可得出:
{{#ifeq: {{#expr:{{#time:U}} <= (1457904600 - 43200)}} | 1 | 距離2016年3月12日21時30分尚餘{{#expr: ( ( 1457904600 - {{#time:U}}) / 86400 - 0.5 ) round 0}}天{{#expr: ( ( (1457904600 - {{#time:U}}) / 3600 - ( ( ( ( 1457904600 - {{#time:U}}) / 86400 - 0.5 ) round 0 ) * 24 ) ) -0.5 ) round 0}}小時 | 2016年3月12日21時30分已過去}} |
並顯示為"2016年3月13日21時30分已過去"。
應用模板
[编辑]模板{{countdown}}是應用了時間序號來製作的倒數模板。與上面的製作方法差不多,但較複雜。