帮助:时间序号
时间序号是模板扩展语法中,{{#time:}}的一种。时间序号的编码是{{#time:U}}。而现在时间(2024年8月24日 08:55:05 am)的时间序号为1724489705。
介绍
时间序号主要用作模板倒数。而时间序号是由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}} }}天 |
并显示为"-266585105天"。但由于出现的都只是秒数,所以,可把该数目除去一天的秒数,即86400,并得:
{{#expr: ( 1457904600 - {{#time:U}}) / 86400 }}天 |
并显示为"-3085.4757523148天"。但可能会出现不能除尽的情况,因此,可以使用舍入法。但由于舍入法只提供四舍五入的方法,即假如0.87天,将会舍入至1日。因此,可以把数目减去0.5,并得:
{{#expr: ( ( 1457904600 - {{#time:U}}) / 86400 - 0.5 ) round 0}}天 |
并显示为"-3086天"。但由于-0.5至0的数目会舍入至-0,此项将于最后说明解决方法。
时数
同样地,把1457904600减去现在的时间序号,并把该数目除去一小时的秒数,并得:
{{#expr: ( ( 1457904600 - {{#time:U}}) / 86400 - 0.5 ) round 0}}天{{#expr: ( 1457904600 - {{#time:U}} ) / 3600 }}小時 |
并显示为"-3086天-74051.418055556小时"。但由于得出的小时数目,未减去已计算的天数。因为,需要先减去天数。并得:
{{#expr: ( ( 1457904600 - {{#time:U}}) / 86400 - 0.5 ) round 0}}天{{#expr: (1457904600 - {{#time:U}}) / 3600 - ( ( ( ( 1457904600 - {{#time:U}}) / 86400 - 0.5 ) round 0 ) * 24 ) }}小時 |
并显示为"-3086天12.58194444445小时"。但同样地,可能会出现不能除尽的法况,因此需要运用舍入法,并同样地减去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}}小時 |
并显示为"-3086天12小时"。
最后步骤
倒数器的日子始终都会到达。其后,便会出现负数。假如不想出现负数,可使用另一个模板语法{{#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}}是应用了时间序号来制作的倒数模板。与上面的制作方法差不多,但较复杂。
|