javascript - 获取用户时间并减去本地时间

标签 javascript html time

我试图获取用户的本地时间并用我自己的时间减去它以获得时差作为输出。

这是我到目前为止所拥有的:

var myTimezone = new Date();
var usersTimezone = 0; // UsersTimezone is missing
var timeDifference = myTimezone.getHours() - usersTimezone + " hours";

document.getElementById("time").innerHTML = "Time Difference: " + timeDifference;
<div id="time">

</div>

我找不到一个好的解决方案来获取用户的准确本地时间,所以也许有人可以在这里帮助我。

非常感谢!

最佳答案

简单的方法:没有夏令时

如所解释的 here有一个函数 getTimezoneOffset() 来获取用户的时区。

但是你必须知道你所在的时区,在我的例子中你所在的时区是 UTC+0。

var myTimezone = 1;
var usersTimezone =  (new Date()).getTimezoneOffset() / 60;
var timeDifference = Math.abs(myTimezone + usersTimezone) + " hours";

document.getElementById("time").innerHTML = "Time Difference: " + timeDifference;
<div id="time">

</div>

夏令时计算

下面的代码也查看了他 daylight saving time 。 这更复杂,我使用了 momentjs为此。

另请看一下这篇文章: https://stackoverflow.com/a/29268535/2801860

var now = moment();
var usersOffset = now.utcOffset();
now.tz("Europe/Berlin"); // your time zone, not necessarily the server's
var myOffset = now.utcOffset();
var diffInMinutes = Math.abs(usersOffset - myOffset);
document.getElementById("time").innerHTML = "Time Difference: " + (diffInMinutes/60);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.21.0/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.21.0/moment-with-locales.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.14/moment-timezone.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.14/moment-timezone-with-data.min.js"></script>

<div id="time">

</div>

关于javascript - 获取用户时间并减去本地时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49351348/

相关文章:

javascript - 用对象数据源填充选择

javascript - 替换字符串切片

javascript - 雅虎的莫吉托曼哈顿混合鸡尾酒,何时/何地可以使用?

javascript - jQuery 'on()' 命令

html - 如何向Html 添加一些非标准字体?

html - 使用react-slick居中幻灯片

java - 使用 Jsoup 以正确的格式从网页中提取相对链接

python - time.sleep(1) 错误——Raspberry Pi 上的 python

time - 当时区有夏令时更新时,我如何安排事件

python - python无限循环和time.sleep()有什么问题吗?