本WIKI由osoras申请于2020年01月21日创建,编辑权限开放,如遇Chrome浏览器登陆后无法编辑点这里 BWIKI反馈留言板
全站通知:

帮助:计时器

来自克鲁赛德战记WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索

完整功能(非模板化)

基本结构

  1. 创建class="NewTimer"元素,将用于包裹整个计时器,后文称其为“根元素”
    • 例如:
      <span class="NewTimer"></span>
  2. 为根元素设置data-start=计时开始时间data-end=计时结束时间,完整格式均形如YYYY/MM/DD HH:MM:SS
    • 例如:
      <span class="NewTimer" data-start="2021/11/22 02:26:30" data-end="2021/11/30 16:30:00"></span>
      可以对不需要的精度进行省略,形如YYYY/MM/DD HH:MM(省略了秒)等
    • 例如:
      data-start="2021/11/22 02:26" data-end="2021/11/30 16:30"
  3. 为根元素创建四个子元素,分别为class="displayTimer"class="NotStart"class="StartButNotEnd"class="End",后文称第一个为“显示元素”,后三个为“内容元素”
    • 例如:
      <span class="NewTimer" data-start="2021/11/22 02:26:30" data-end="2021/11/30 16:30:00">
      	<span class="displayTimer"></span>
      	<span class="NotStart"></span>
      	<span class="StartButNotEnd"></span>
      	<span class="End"></span>
      </span>

内容结构

  1. 显示元素是最终显示内容的元素,一般来说内容直接留空即可
  2. 内容元素的内容分别为系统时间“未达到data-start”(尚未开始)显示的内容、“达到data-start但未达到data-end”(正在进行)显示的内容、“达到data-end”(已经结束)显示的内容:

    尚未开始	.NotStart
    正在进行	.StartButNotEnd		
    已经结束	.End
    

    • 例如:
      <span class="NewTimer" data-start="2021/11/22 02:26:30" data-end="2021/11/30 16:30:00">
      	<span class="displayTimer"></span>
      	<span class="NotStart">活动尚未开始,准备好战斗了吗?</span>
      	<span class="StartButNotEnd">活动正在进行,赶快肝起来。</span>
      	<span class="End">活动已经结束嘞!</span>
      </span>
  3. 当系统时间满足条件时,显示元素内就会显示对应元素内的内容

    如无特殊需要,建议为内容元素设置样式style="display:none"

显示格式

显示格式请参考MediaWiki:NewTimer.js格式说明部分,在此只做演示,请通过源代码查看
{{JS|NewTimer}}
<span class="NewTimer" data-start="2021/3/4 02:26:30" data-end="2021/3/10 16:30">
<span class="displayTimer" style="display:block"></span>
<span class="NotStart">
现在是%nyear年%nmonth月%ndate日%nhour时%nmin分%nsec秒<br>
现在是%nyear年%nMonth月%nDate日%nHour时%nMin分%nSec秒(补前导零)<br>
<br>
%syear年%smonth月%sdate日%shour时%smin分%ssec秒开始<br>
%syear年%sMonth月%sDate日%sHour时%sMin分%sSec秒开始(补前导零)<br>
<br>
%eyear年%emonth月%edate日%ehour时%emin分%esec秒结束<br>
%eyear年%eMonth月%eDate日%eHour时%eMin分%eSec秒结束(补前导零)<br>
<br>
距离开始还有~sd天~sh时~sm分~ss秒<br>
或者说还有~sH时~sm分~ss秒<br>
或者说还有~sM分~ss秒<br>
或者说还有~sS秒<br>
<br>
距离结束还有~ed天~eh时~em分~es秒<br>
或者说还有~eH时~em分~es秒<br>
或者说还有~eM分~es秒<br>
或者说还有~eS秒<br>
</span>
<span class="StartButNotEnd">
现在是%nyear年%nmonth月%ndate日%nhour时%nmin分%nsec秒<br>
现在是%nyear年%nMonth月%nDate日%nHour时%nMin分%nSec秒(补前导零)<br>
<br>
%syear年%smonth月%sdate日%shour时%smin分%ssec秒开始<br>
%syear年%sMonth月%sDate日%sHour时%sMin分%sSec秒开始(补前导零)<br>
<br>
%eyear年%emonth月%edate日%ehour时%emin分%esec秒结束<br>
%eyear年%eMonth月%eDate日%eHour时%eMin分%eSec秒结束(补前导零)<br>
<br>
距离开始已经过去~sd天~sh时~sm分~ss秒<br>
或者说已经过去~sH时~sm分~ss秒<br>
或者说已经过去~sM分~ss秒<br>
或者说已经过去~sS秒<br>
<br>
距离结束还有~ed天~eh时~em分~es秒<br>
或者说还有~eH时~em分~es秒<br>
或者说还有~eM分~es秒<br>
或者说还有~eS秒<br>
</span>
<span class="End">
现在是%nyear年%nmonth月%ndate日%nhour时%nmin分%nsec秒<br>
现在是%nyear年%nMonth月%nDate日%nHour时%nMin分%nSec秒(补前导零)<br>
<br>
%syear年%smonth月%sdate日%shour时%smin分%ssec秒开始<br>
%syear年%sMonth月%sDate日%sHour时%sMin分%sSec秒开始(补前导零)<br>
<br>
%eyear年%emonth月%edate日%ehour时%emin分%esec秒结束<br>
%eyear年%eMonth月%eDate日%eHour时%eMin分%eSec秒结束(补前导零)<br>
<br>
距离开始已经过去~sd天~sh时~sm分~ss秒<br>
或者说已经过去~sH时~sm分~ss秒<br>
或者说已经过去~sM分~ss秒<br>
或者说已经过去~sS秒<br>
<br>
距离结束已经过去~ed天~eh时~em分~es秒<br>
或者说已经过去~eH时~em分~es秒<br>
或者说已经过去~eM分~es秒<br>
或者说已经过去~eS秒<br>
</span>
</span>
{{#tag:bstyle|
.NewTimer .NotStart,.NewTimer .StartButNotEnd,.NewTimer .End{
display:none;
}
}}

现在是%nyear年%nmonth月%ndate日%nhour时%nmin分%nsec秒
现在是%nyear年%nMonth月%nDate日%nHour时%nMin分%nSec秒(补前导零)

%syear年%smonth月%sdate日%shour时%smin分%ssec秒开始
%syear年%sMonth月%sDate日%sHour时%sMin分%sSec秒开始(补前导零)

%eyear年%emonth月%edate日%ehour时%emin分%esec秒结束
%eyear年%eMonth月%eDate日%eHour时%eMin分%eSec秒结束(补前导零)

距离开始还有~sd天~sh时~sm分~ss秒
或者说还有~sH时~sm分~ss秒
或者说还有~sM分~ss秒
或者说还有~sS秒

距离结束还有~ed天~eh时~em分~es秒
或者说还有~eH时~em分~es秒
或者说还有~eM分~es秒
或者说还有~eS秒
现在是%nyear年%nmonth月%ndate日%nhour时%nmin分%nsec秒
现在是%nyear年%nMonth月%nDate日%nHour时%nMin分%nSec秒(补前导零)

%syear年%smonth月%sdate日%shour时%smin分%ssec秒开始
%syear年%sMonth月%sDate日%sHour时%sMin分%sSec秒开始(补前导零)

%eyear年%emonth月%edate日%ehour时%emin分%esec秒结束
%eyear年%eMonth月%eDate日%eHour时%eMin分%eSec秒结束(补前导零)

距离开始已经过去~sd天~sh时~sm分~ss秒
或者说已经过去~sH时~sm分~ss秒
或者说已经过去~sM分~ss秒
或者说已经过去~sS秒

距离结束还有~ed天~eh时~em分~es秒
或者说还有~eH时~em分~es秒
或者说还有~eM分~es秒
或者说还有~eS秒
现在是%nyear年%nmonth月%ndate日%nhour时%nmin分%nsec秒
现在是%nyear年%nMonth月%nDate日%nHour时%nMin分%nSec秒(补前导零)

%syear年%smonth月%sdate日%shour时%smin分%ssec秒开始
%syear年%sMonth月%sDate日%sHour时%sMin分%sSec秒开始(补前导零)

%eyear年%emonth月%edate日%ehour时%emin分%esec秒结束
%eyear年%eMonth月%eDate日%eHour时%eMin分%eSec秒结束(补前导零)

距离开始已经过去~sd天~sh时~sm分~ss秒
或者说已经过去~sH时~sm分~ss秒
或者说已经过去~sM分~ss秒
或者说已经过去~sS秒

距离结束已经过去~ed天~eh时~em分~es秒
或者说已经过去~eH时~em分~es秒
或者说已经过去~eM分~es秒
或者说已经过去~eS秒

支持和HTML元素互动,例如:
<span class="NewTimer" data-start="2001/1/1">
	<span class="displayTimer"></span>
	<span class="End">
		<div class="barB"><div class="bar" style="width:calc(%nhour/23*100%)">%nhour </div></div>
		<div class="barB"><div class="bar" style="width:calc(%nmin/59*100%)">%nmin </div></div>
		<div class="barB"><div class="bar" style="width:calc(%nsec/59*100%)">%nsec </div></div>
	</span>
</span>
※注:限于WIKI文本特性所致,实际使用须删除所有换行,此处做了美化
{{#tag:bstyle|
.barB{
width:100%
height:2em;
border:1px black solid;
}
.bar{
height:2em;
background-color:pink;
text-align:right;
line-height:2em;
}
}}
%nhour 
%nmin 
%nsec 

特殊

计时器默认所在的时区为GMT+8,如有需要,可以为根元素设置data-gmt=时区
例如:
<span class="NewTimer" data-start="2021/11/22 02:26:30" data-end="2021/11/30 16:30:00" data-gmt="+9"></span>

模板化功能

待补充