Help:時間序號

维基百科,自由的百科全书
跳到导航 跳到搜索
快捷方式
H:UNIX

時間序號模板擴展語法中,{{#time:}}的一種。時間序號的編碼是{{#time:U}}。而現在時間—2018年7月13日 04:17:20 am的時間序號為1531455440。

介紹[编辑]

時間序號主要用作模板倒數。而時間序號是由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}} }}天

並顯示為"-73550840天"。但由於出現的都只是秒數,所以,可把該數目除去一天的秒數,即86400,並得:

{{#expr: ( 1457904600 - {{#time:U}}) / 86400 }}天

並顯示為"-851.28287037037天"。但可能會出現不能除盡的情況,因此,可以使用舍入法。但由於舍入法只提供四舍五入的方法,即假如0.87天,將會舍入至1日。因此,可以把數目減去0.5,並得:

{{#expr: ( ( 1457904600 - {{#time:U}}) / 86400 - 0.5 ) round 0}}天

並顯示為"-852天"。但由於-0.5至0的數目會舍入至-0,此項將於最後說明解決方法。

時數[编辑]

同樣地,把1457904600減去現在的時間序號,並把該數目除去一小時的秒數,並得:

{{#expr: ( ( 1457904600 - {{#time:U}}) / 86400 - 0.5 ) round 0}}天{{#expr: ( 1457904600 - {{#time:U}} ) / 3600 }}小時

並顯示為"-852天-20430.788888889小時"。但由於得出的小時數目,未減去已計算的天數。因為,需要先減去天數。並得:

{{#expr: ( ( 1457904600 - {{#time:U}}) / 86400 - 0.5 ) round 0}}天{{#expr: (1457904600 - {{#time:U}}) / 3600 - ( ( ( ( 1457904600 - {{#time:U}}) / 86400 - 0.5 ) round 0 ) * 24 ) }}小時

並顯示為"-852天17.211111111112小時"。但同樣地,可能會出現不能除盡的法況,因此需要運用舍入法,並同樣地減去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}}小時

並顯示為"-852天17小時"。

最後步驟[编辑]

倒數器的日子始終都會到達。其後,便會出現負數。假如不想出現負數,可使用另一個模板語法{{#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}}是應用了時間序號來製作的倒數模板。與上面的製作方法差不多,但較複雜。