如何修改JS代码为网页添加AEST时区的最后更新时间?
实现AEST时区的最后更新日期+时间显示
以下是修改后的代码,既能保留原有的日期格式,又能添加AEST时区的时间显示:
// 格式化日期时间为 DD-MMM-YY HH:mm (AEST时区) function formatLastModified(date) { // 处理年份兼容(针对老浏览器) let y = date.getFullYear(); const twoDigitYear = y % 100; const formattedYear = twoDigitYear < 10 ? `0${twoDigitYear}` : twoDigitYear; // 获取月份缩写 const months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']; const mmm = months[date.getMonth()]; // 格式化日期 const d = date.getDate(); const formattedDate = d < 10 ? `0${d}` : d; // 转换为AEST时区的24小时制时间 const aestTime = date.toLocaleString('en-AU', { timeZone: 'Australia/Sydney', hour12: false, hour: '2-digit', minute: '2-digit' }); return `${formattedDate}-${mmm}-${formattedYear} ${aestTime}`; } // 获取并返回格式化后的最后更新日期时间 function getLastModifiedDateTime() { const lmd = document.lastModified; let result = "Unknown"; const parsedDate = Date.parse(lmd); if (parsedDate) { result = formatLastModified(new Date(parsedDate)); } return result; } // 输出到页面 document.write(`This page was updated on ${getLastModifiedDateTime()} (AEST)`);
关键改动说明:
- 合并原有的日期格式化逻辑,新增时间处理部分,通过
toLocaleString指定Australia/Sydney时区(对应AEST),直接生成标准的两位小时+分钟格式 - 用数组简化月份缩写的获取逻辑,比原有的多条件判断更简洁易维护
- 保留了年份转为两位数字的兼容处理,同时使用
getFullYear替代旧的getYear,避免老浏览器的年份解析问题 - 输出内容明确标注时区,让用户清晰了解时间基准
内容的提问来源于stack exchange,提问作者Oliver K
相关产品推荐
相关产品推荐

