3 回答

TA貢獻1824條經驗 獲得超8個贊
您需要知道您的時區(可以在此處找到時區列表),然后像這樣使用它date.toLocaleTimeString():
const locale = 'en-US';
const our_timeZone = 'America/Los_Angeles';
// refresh time every second
setInterval(() => {
document.getElementById('our_time').innerHTML = new Date().toLocaleTimeString(locale, { timeStyle: 'long', timeZone: our_timeZone });
document.getElementById('your_time').innerHTML = new Date().toLocaleTimeString(locale, { timeStyle: 'long' });
}, 1);
<p>Our time</p>
<span id="our_time"></span>
<p>Your time</p>
<span id="your_time"></span>

TA貢獻1840條經驗 獲得超5個贊
也許你的方法是錯誤的。
a)我們的時間(網站時間):這應該來自服務器(并且可能與它定期同步)
b)您的時間(用戶的本地時間): new Date() 將執行此部分,因為它在客戶端(瀏覽器)上運行。
這是來自“ http://worldtimeapi.org/api/timezone/America/Argentina/Salta ”的示例 json 數據哦!它也是免費的.. 將您的 ajax 調用與相關時區掛鉤
{ "week_number":49, "utc_offset":"-03:00",
"utc_datetime":"2019-12-03T11:42:02.994093+00:00",
"unixtime":1575373322, "timezone":"美國/Argentina/Salta”,
“raw_offset”:-10800,“dst_until”:null,“dst_offset”:0,
“dst_from”:null,“dst”:false,“day_of_year”:337,
“day_of_week”:2,“ datetime":"2019-12-03T08:42:02.994093-03:00",
"client_ip":"hi hi hi ... 幾乎讓我在那里", "abbreviation":"-03" }
另外,試試這段代碼..
new Date().toLocaleString('en-US', { hour: 'numeric', minute: 'numeric', hour12: true })
這將給出一個輸出
“下午 5 點 23 分”
ps:這只是一個建議。。

TA貢獻1995條經驗 獲得超2個贊
使用獲取客戶端的時區
const localDate = new Date(1489199400000);
localDate.getTimeZoneOffset();//time zone offset
然后在 Date 中使用此值并獲取您的時間和客戶端機器時間的差異
添加回答
舉報