在angularjs中获取全球(UTC或GMT)时间,而不是当地时间
有没有办法在angular js
或javascript
中做到这一点?获得一个不取决于PC本地日期的时间?我能想到的唯一解决方案我可以想到的是不断向后端发出请求,以便使用服务器的时间而不是客户端本地时间,但这不是一个真正的解决方案,因为它需要不断发出请求,显然很糟糕,因为这是一种暴力方法,由于请求显然有延迟,因此并不真正产生期望的结果。在angularjs中获取全球(UTC或GMT)时间,而不是当地时间
调用不带参数的Date构造函数将创建一个对象,该对象包含被调用时的时间和日期,并且包含计算UTC时间所需的所有信息。然后,只需选择将输出UTC时间而不是本地时间的方法即可。例如:
<!DOCTYPE html>
<html>
<body>
<h1>Display present UTC time</h1>
<script>
var d = new Date();
document.writeln(d.toUTCString());
</script>
</body>
</html>
//converts local time to UTC (Universal Time)
function toUTC(/*Date*/date) {
return Date.UTC(
date.getFullYear()
, date.getMonth()
, date.getDate()
, date.getHours()
, date.getMinutes()
, date.getSeconds()
, date.getMilliseconds()
);
} //toUTC()
此功能将给予你的Unix纪元蜱UTC(感谢:http://blog.davidjs.com/2011/05/convert-local-time-to-utc-time-in-javascript/)
如果您需要在用户友好的方式来显示这个请参考参考:http://www.w3schools.com/jsref/jsref_obj_date.asp
好运气!
这将当地日期看作是UTC,这似乎不是一个好主意。对于不同偏移量的每个时区,它会在同一时刻产生不同的结果。我不认为它回答OP,这似乎是在问如何从主机获取准确的日期和时间。 – RobG
ECMA-262不指定日期和时间值的来源,因此它们可以来自任何地方。但是,它们很可能来自当前的系统设置,因此'new Date()'将基于主机所说的当前日期,时间和时区偏移量。主机可以使用时间服务器,或者只是用户设置的时间服务器。我经常更改测试设置,但不一定准确。 – RobG