同一時間戳,`toLocaleString()` 在不同平台輸出不同:
Windows: `2015/9/1` iOS: `2015年9月1日` Android: `Tue Sep 01 ...`
`toLocaleString` 實現完全依賴**宿主環境(瀏覽器/系統)的區域設置**,ECMA 標準未強制統一格式。
function formatDate(timestamp) {
const d = new Date(timestamp * 1000); // 秒轉毫秒
const y = d.getFullYear();
const m = String(d.getMonth() + 1).padStart(2, '0');
const day = String(d.getDate()).padStart(2, '0');
const h = String(d.getHours()).padStart(2, '0');
const min = String(d.getMinutes()).padStart(2, '0');
const s = String(d.getSeconds()).padStart(2, '0');
return `${y}-${m}-${day} ${h}:${min}:${s}`;
}
// 擴展原型(可選)
Date.prototype.toUnifiedString = function() {
return formatDate(this.getTime() / 1000);
};