js 获取当前gmt时间_javascript – 获取当前GMT世界时间

首先,要获得准确的GMT时间,您需要一个您信任的来源。这意味着某个服务器。 Javascript通常只能进行HTTP调用,并且只发送到托管相关页面的服务器(同源策略)。因此,该服务器必须是您的GMT时间的来源。

我将配置您的Web服务器使用NTP与GMT同步其时钟,并让Web服务器通过写一个变量到页面告诉脚本什么时候。否则make和XmlHttpRequest回到服务器当你需要知道时间。缺点是,由于涉及延迟,这将是不准确的:服务器确定时间,将其写入响应,响应通过网络传播,并且当客户端的cpu给它一个时间片时,javascript执行等。在慢链接,如果页面大,你可以期望秒的延迟。您可以通过确定用户的时钟距离GMT有多远,并可以通过该偏移调整所有时间计算,从而节省一些时间。当然,如果用户的时钟是慢或快(不只是迟到或早),或者如果用户改变他们的PC上的时间,那么你的偏移量被吹。

还要记住,客户端可以更改数据,因此不要信任他们发送给您的任何时间戳。

编辑:

JimmyP’s answer非常简单,易于使用:使用Javascript添加< script>元素,它调用一个url,如http://json-time.appspot.com/time.json?tz=GMT.这是比自己做的更容易,因为json-time.appspot.com服务器工作作为GMT时间的来源,并提供这种数据,让你围绕同一起源政策。我建议为简单的网站。但是它有一个主要的缺点:json-time.appspot.com网站可以在用户的​​页面上执行任意代码。这意味着,如果该网站的操作符想要剖析您的用户或劫持他们的数据,他们可以这样做。即使您信任运算符,您也需要相信他们没有被黑客入侵或被入侵。对于商业网站或任何可靠性高的网站,我建议自己托管时间解决方案。

编辑2:

JimmyP’s answer有一个意见,建议json时间应用程序在它可以支持的请求数量方面有一些限制。这意味着如果您需要可靠性,您应该自己承载时间服务器。但是,应该很容易在您的服务器上添加一个页面,该页面使用相同格式的数据进行响应。基本上你的服务器接受一个查询,例如

http://json-time.appspot.com/time.json?tz=America/Chicago&callback=foo

并返回一个字符串如

foo({

"tz": "America\/Chicago",

"hour": 15,

"datetime": "Thu, 09 Apr 2009 15:07:01 -0500",

"second": 1,

"error": false,

"minute": 7

})

注意foo()包装JSON对象;这对应于查询中的callback = foo。这意味着当脚本加载到页面时,它会调用你的foo函数,它可以做任何它想要的时间。这个例子的服务器端编程是一个单独的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript中,可以使用以下代码来获取当前时间GMT(格林威治时间): ```javascript let time = new Date(); let offset = time.getTimezoneOffset(); // 获取当前时区与格林威治时间时间差(单位:分钟) let timestampGMT = time.getTime() + offset * 60 * 1000; // 根据时间差计算出当前时间GMT时间戳 ``` 以上代码中,我们首先使用`new Date()`来获取当前时间,然后使用`getTimezoneOffset()`来获取当前时区与格林威治时间之间的时间差,将其保存在`offset`变量中。接着,我们通过将当前时间的毫秒表示形式`time.getTime()`与时间差进行计算,得到了当前时间GMT时间戳,保存在`timestampGMT`变量中。 需要注意的是,`offset`的单位是分钟,所以在计算时需要将其转换为毫秒进行计算。 因此,以上代码可以用来获取当前时间GMT时间戳。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [js获取当前时区GMT](https://blog.csdn.net/weixin_39593340/article/details/111802501)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [JS 转换格林尼治时间](https://blog.csdn.net/Mirror_r/article/details/109997061)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值