2011-06-17 34 views
0

现在我在桌面上获取的数字与我在笔记本电脑上的数字不同。Javascript - 如何让所有电脑上的getTime()变得统一?

+1

在台式机和笔记本电脑上的时间不同吗?价值有多少不同?它不正确地报告当前时间吗? ([NTP(网络时间协议)](http://en.wikipedia.org/wiki/Network_Time_Protocol) - 通常用于在计算机/互联网上同步时间;这与JavaScript无关。) – 2011-06-17 01:16:35

回答

2

getTime()使用本地时间设置。时间设置可以在两个地方之一更改:

  1. 您的操作系统(如Windows)可能会管理时间;在任务栏上双击它
  2. 您的操作系统依赖于系统BIOS,这是主板在主板上安装了电池的原因之一(为了在发生系统故障时保持时间和设置),修改您的时间BIOS应该反映在操作系统中,因此在JavaScript中可以使用

另一种方法是制作自己的getTime函数,该函数从一个源(如服务器)获取时间。如果你想最大限度地减少网络调用,这可能是值得的一次,同时打电话给getTime()。然后,在其他时间,当需要时,再次发出getTime(),减去差异并将其添加到服务器时间。 注:如果时间是很重要的,我反对这项建议,因为用户可以很容易地改变他们的系统时钟

否则,如果您的计算机都在同一网络上,你可以使用一个调度程序和批处理过程同步时间 - 这不会是完美的,但它会足够接近

1

同步时钟。

操作系统应该有一个使用网络时间服务的选项。可能还是有些微差别,但不应该超过一秒或两秒,这对于大多数目的来说已经够用了。你需要他们有多接近?

+0

在一两秒钟内,但其他人将访问该网站,他们也需要同步:/ – 2011-06-17 01:23:23

+2

@ user802519重新思考该策略的时间。不可能确保所有访问该网站的人都将其时钟放在一些小的“可接受的”时间差值内。用户时间应作为外部输入谨慎处理 - 来源超出了您的控制范围。 – 2011-06-17 01:24:39

+0

有没有办法从外部来源获取一个符合每个人的时间? – 2011-06-17 01:28:23

0

getTime()获取计算机的系统时间。但是,如果您确实需要同步,最好与您拥有的Web服务器进行同步。干杯!

0

你不能,至少不能单独使用JavaScript。 JavaScript使用客户端计算机上的系统信息来确定时间。现在,如果他们处于不同的时区,可以使用UTC()函数以UTC为基础(1970年1月1日午夜以来的秒数)获取它们,但很可能它们不是同步的。

0

这可能是由于各种原因。最有可能的原因:

  • 时钟可能设置不一致。其中一个(或两者)可能是错误的。
  • 时钟可能使用不同的时区。
2

与其使用javascript getTime()方法,您应该重新考虑您的用例。

如果你正在寻找时间戳的表单提交(如评论或表格后),你应该在服务器产生的时间戳处理POST

时,如果你想有一个一致的时间客户端,请考虑对返回时间戳的简单Web应用程序进行ajax调用。您可以自己轻松编写一个,或者您可以使用Yahoo's time service

相关问题