为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 JavaScript 显示您的时间和我们的时钟?

如何使用 JavaScript 显示您的时间和我们的时钟?

慕少森 2022-01-20 20:36:56
在我的网站上,我想将我的当地时间显示为Our Time,将访客时间显示为Your time。现在,我有这个 JS 代码:<script>    function showTime(){    var date = new Date();    var h = date.getHours(); // 0 - 23    var m = date.getMinutes(); // 0 - 59    var s = date.getSeconds(); // 0 - 59    var session = "AM";    if(h == 0){        h = 12;    }    if(h > 12){        h = h - 12;        session = "PM";    }    h = (h < 10) ? "0" + h : h;    m = (m < 10) ? "0" + m : m;    s = (s < 10) ? "0" + s : s;    var time = h + ":" + m + ":" + s + " " + session;    document.getElementById("our_time").innerText = time;    document.getElementById("our_time").textContent = time;    setTimeout(showTime, 1000);}showTime();</script>它显示我的当地时间。现在,我将使用相同的代码来显示访客时间还是需要更改什么?
查看完整描述

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>


查看完整回答
反对 回复 2022-01-20
?
慕斯709654

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:这只是一个建议。。


查看完整回答
反对 回复 2022-01-20
?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

使用获取客户端的时区


const localDate = new Date(1489199400000);


localDate.getTimeZoneOffset();//time zone offset


然后在 Date 中使用此值并获取您的时间和客户端机器时间的差异


查看完整回答
反对 回复 2022-01-20
  • 3 回答
  • 0 关注
  • 181 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信