<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>时间戳转换</title>
<style>*{margin:0;padding:0;box-sizing:border-box}body{font-family:system-ui;background:#0d1117;color:#c9d1d9;display:flex;justify-content:center;padding:2rem}.c{max-width:600px;width:100%}h1{font-size:1.5rem;color:#58a6ff;margin-bottom:1.5rem}.row{margin-bottom:1rem}label{display:block;font-size:.75rem;color:#8b949e;margin-bottom:.25rem;text-transform:uppercase;letter-spacing:.05em}input,textarea{width:100%;padding:.75rem;background:#161b22;border:1px solid #30363d;border-radius:6px;color:#c9d1d9;font-family:monospace;font-size:.9rem;resize:vertical}input:focus,textarea:focus{outline:none;border-color:#58a6ff}.result{background:#0d1117;padding:.75rem;border:1px solid #30363d;border-radius:6px;font-family:monospace;font-size:.85rem;min-height:2.5rem;word-break:break-all}button{background:#238636;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.8rem;margin-right:.5rem}button:hover{background:#2ea043}</style>
</head>
<body>
<div class="c">
<h1>249 — 时间戳转换</h1>
<div class="row"><label>Unix 时间戳</label><input id="ts" type="text" placeholder="输入秒级或毫秒级时间戳..." oninput="convert()"></div>
<div class="row"><label>北京时间</label><div class="result" id="out"></div></div>
<div class="row"><label>UTC 时间</label><div class="result" id="utc"></div></div>
<div class="row"><label>当前时间戳</label><div class="result"><button onclick="now()">获取当前</button><span id="now" style="margin-left:.5rem;font-family:monospace"></span></div></div>
</div>
<script>
function fmt(d){return d.toLocaleString('zh-CN',{timeZone:'Asia/Shanghai',year:'numeric',month:'2-digit',day:'2-digit',hour:'2-digit',minute:'2-digit',second:'2-digit',hour12:false})}
function utcfmt(d){return d.toISOString().replace('T',' ').replace(/\.\d{3}Z/,' UTC')}
function convert(){
const v=document.getElementById('ts').value.trim();
if(!v){document.getElementById('out').textContent='';document.getElementById('utc').textContent='';return}
let s=parseInt(v);
if(isNaN(s)){document.getElementById('out').textContent='无效';return}
if(s>1e12) s=Math.floor(s/1000);
const d=new Date(s*1000);
document.getElementById('out').textContent=fmt(d);
document.getElementById('utc').textContent=utcfmt(d);
}
function now(){
const ts=Math.floor(Date.now()/1000);
document.getElementById('now').textContent=ts+' ('+fmt(new Date())+')';
document.getElementById('ts').value=ts;convert();
}
now();
</script>
</body>
</html>