显示另一个时区的时间
Showing the time of another time zone
我正在创建一个页面,该页面必须显示UTC时间,我的当前时间和其他/国家/时区时间。我使用moment.min.js,moment-timezone.js,jquery.min.js - 我用过 - http://www.digitoffee.com/programming/get-local-time-utc-using-moment-js/94/。请帮助我获取另一个时区的时间。- 这是jsFiddle中的代码 - https://jsfiddle.net/shejus/g63d2onw/10/- 请帮忙
<html>
<head>
<title>DISPLAY TIME</title>
</head>
<body>
UTC
<br/>
<div id="divUTC"></div>
<br/>
Your Local Time with respect to above UTC time
<br/>
<div id="divLocal"></div>
<br/>
OTHER TIMEZONE TIME
<br/>
<div id="anyutctime"></div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="js/moment.min.js"></script>
<script>
$(function(){
setInterval(function(){
var divUtc = $('#divUTC');
var divLocal = $('#divLocal');
var anyutctime = $ ('#anyutctime');
//put UTC time into divUTC
divUtc.text(moment.utc().format('YYYY-MM-DD HH:mm:ss'));
//get text from divUTC and conver to local timezone
var localTime = moment.utc(divUtc.text()).toDate();
localTime = moment(localTime).format('YYYY-MM-DD HH:mm:ss');
divLocal.text(localTime);
},1000);
//Display time of Another timezone
var anyTime = moment.utc(divUtc.text()).toDate();
anyTime = moment.tz("America/Chicago").format('YYYY-MM-DD HH:mm:ss');
anyutctime.text(anyTime);
});
</script>
<script src="js/moment-timezone.js"></script>
</body>
</html>
有几个错误:
-
您的小提琴没有加载您指定的所有资源。
-
jQuery 未加载,因为您提供了一个
http
URL,并且小提琴是通过https
加载的。 根据经验,在 jsFiddle 上加载外部资源时指定协议相对 URL。(以//
开头的 URL,省略任何http:
或https:
)。 -
您正在加载时刻-时区之前。 根据时刻时区文档,您需要先加载时刻。 时刻时区与时刻全局挂钩。
-
-
您没有向时刻时区提供任何时区数据。 您可以使用
moment.tz.add
手动加载特定时区的数据,也可以使用预填充的数据文件之一,例如moment-timezone-with-data-2010-2020.min.js
。 使用此文件而不是moment-timezone.min.js
文件(它包括脚本和数据)。 -
您的 HTML 代码段中有一个
<body>
标记。这在 jsFiddle 中不是必需的。 -
您有一些脚本超出了
setInterval
调用的内部函数的范围。 这导致divUtc
在首次运行时未定义,并且未填充"其他时区时间"。 仔细观察右括号。
解决上述问题后,您的代码就可以正常工作。 在这里更新了小提琴。
但是,脚本中仍有一些不必要的操作。 通常,无需使用div 内容、字符串或Date
对象作为中间状态持有者。 事实上,由于您没有对 moment 对象执行任何其他操作,因此您只需创建一次它并在每次显示之前更改状态。 (如果要执行进一步的操作,则可能需要先克隆它。
完全优化的jsFiddle在这里,代码如下:
$(function(){
setInterval(function(){
var divUtc = $('#divUTC');
var divLocal = $('#divLocal');
var divOther = $('#divOther');
var format = 'YYYY-MM-DD HH:mm:ss';
// get current local time
var now = moment();
// display the local time
divLocal.text(now.format(format));
// switch to utc mode and display
divUtc.text(moment.utc().format(format));
// switch to another time zone and display
divOther.text(now.tz('America/Chicago').format(format));
},1000);
});
最后,我只想评论一下,一般来说,你应该尝试在 Stack Overflow 上提出更具体的问题,而不仅仅是寻找一般的调试帮助。 Stack Overflow主要是关于提供有用的可重用问题和答案,除了帮助您解决此特定问题外,这些问题和答案还将帮助其他人。 下次,请按照堆栈溢出帮助中心的以下文章中的指导进行操作:
- 我如何问一个好问题?
- 如何创建最小、完整且可验证的示例
- 高库存时期时间与时区不匹配
- 获取本地时间的JS日期,日期对象中没有时区详细信息
- 显示服务器时间,包括时区偏移
- 更改默认时区后,如何在本地时间设置时刻格式
- 使用JavaScript日期的任何时间的时区偏移量
- 如何在时间标签和相同的类中以UTC格式重新格式化ISO 8601时间戳,并通过JavaScript根据用户区域设置和时区
- 时刻时区.js允许我传递时区缩写并获取转换后的日期/时间
- 时刻.js时区值返回错误的时间戳
- 如何使用 JavaScript 更改日期的时区而不更改时间
- 如何将 UTC 日期时间(字符串)转换为访问者时区
- AngularJS,如何将多个输入组合到一个ng模型中?具体来说,将日期、时间和时区输入组合到日期时间对象中
- 以特定时区的javascript获取服务器时间
- 如何在Dynamics CRM中获取时区的夏令时开始和结束时间
- 将时区格式的日期显示为UTC时间
- 使用 JavaScript 的客户端日期/时间戳一致(考虑时区)
- 如何将 unix 时间戳转换为 JavaScript 日期对象(考虑时区)
- 使用JS检查用户是否在EST时区和设置的EST时间范围内
- 将用户提交的日期/时间/时区转换为与时区无关的UTC
- 哪一种是自定义的,通过书本的方式获取用户的本地时间/时区?(或者:谷歌/脸书是怎么做到的?)
- 如何获得用户's的本地时间(时区)