打开/关闭搜索
搜索
打开/关闭菜单
14
6636
42
1.1万
OGAS数据中枢
导航
首页
最近更改
随机页面
特殊页面
上传文件
少女前线
简介
战术人形
装备图鉴
BGM
任务
打开/关闭外观设置菜单
通知
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。
user-interface-preferences
个人工具
注册
登录
查看“︁Widget:Countdown”︁的源代码
来自OGAS数据中枢
更多操作
←
Widget:Countdown
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
管理员
您没有权限编辑
Widget
命名空间内的页面。
您可以查看和复制此页面的源代码。
<includeonly> <span class="custom-countdown" data-target="<!--{$time|default:$1|escape:'quotes'}-->" data-before="<!--{$before|default:'$1前'}-->" data-after="<!--{$after|default:'还剩$1'}-->">...</span> <script> (function() { let t = null; function u() { const now = new Date(); document.querySelectorAll('.custom-countdown').forEach(el => { const targetStr = el.getAttribute('data-target'); const beforeTpl = el.getAttribute('data-before'); const afterTpl = el.getAttribute('data-after'); const finalTargetStr = /^\d{4}$/.test(targetStr) ? targetStr + "-01-01T00:00:00" : targetStr; const target = new Date(finalTargetStr); if (isNaN(target)) { el.innerHTML = '<span style="color:red">时间格式错误</span>'; return; } const diff = target - now; const absDiff = Math.abs(diff); // 计算时间差值字符串 const days = Math.floor(absDiff / 864e5); const hours = Math.floor((absDiff % 864e5) / 36e5); const mins = Math.floor((absDiff % 36e5) / 6e4); const secs = Math.floor((absDiff % 6e4) / 1000); let diffStr = ""; if (days > 0) diffStr += days + "天"; if (hours > 0 || days > 0) diffStr += hours + "小时"; if (mins > 0 || hours > 0 || days > 0) diffStr += mins + "分"; diffStr += secs + "秒"; if (diff > 0) { el.innerHTML = afterTpl.replace('$1', diffStr); } else { el.innerHTML = beforeTpl.replace('$1', diffStr); } }); } function start() { if(!t){ u(); t=setInterval(u, 1000); } } function stop() { clearInterval(t); t=null; } document.addEventListener('visibilitychange', () => { document.hidden ? stop() : start(); }); start(); })(); </script> </includeonly><noinclude> 这是一个倒计时微件,仅供{{tl|Countdown}}使用。 </noinclude>
该页面嵌入的页面:
Template:Tl
(
查看源代码
)
Template:Transclude
(
查看源代码
)
返回
Widget:Countdown
。
查看“︁Widget:Countdown”︁的源代码
来自OGAS数据中枢