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 中使用此值并获取您的时间和客户端机器时间的差异
添加回答
举报