JavaScript实现Australia/Sydney时区日期格式失效,求解决方案
解决Australia/Sydney时区日期显示异常问题
你的代码核心问题是:虽然定义了timeZones数组,但没有在日期格式化逻辑中使用这个时区参数,toLocaleString默认采用用户本地时区,导致显示的是本地日期而非悉尼时区的日期。
修正方案
在日期格式化的options对象中添加timeZone属性,明确指定为'Australia/Sydney'即可:
修正后的JavaScript代码
const datesausDiv = document.getElementById('date-div-aus'); function myDateFunction() { const now = new Date(); const options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric', timeZone: 'Australia/Sydney' // 新增时区指定 }; const nowStr = now.toLocaleString('en-US', options); datesausDiv.innerHTML = nowStr; } setInterval(myDateFunction, 1000);
HTML代码(无需修改)
<div id="date-div-aus"> </div>
说明
- 现代浏览器和Node.js都支持IANA时区标识符(如
Australia/Sydney),无需额外引入库即可直接使用。 - 原代码中的
timeZones数组未被使用,可根据需求保留或删除。
内容的提问来源于stack exchange,提问作者core114
相关产品推荐
相关产品推荐

