【问题标题】:Javascript UTC time not workingJavascript UTC时间不起作用
【发布时间】:2017-08-25 16:04:13
【问题描述】:

所以我有这段代码应该根据 UTC 时间显示不同的图像,但它不显示任何内容,例如,当它是星期一 00:00 时它应该显示一个图像,当它是星期二 19:00 时它应该显示另一张图像你知道这里有什么问题吗? 谢谢你

这只是代码的一小部分,因为完整的代码太长了:

<strong class="GeneratedText">
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.js">
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.js"></script>
<script type="text/javascript">
    document.write("<p>");
    var d = moment().tz('Europe/Oslo').format('dddd');
    var hr = moment().tz('Europe/Oslo').format('k') ;

if (d=="Monday" && hr==0) {
document.write("<img src='https://static.wixstatic.com/media/e2aefa_adea8af0771845aa9e2f7e8c1c65a654~mv2.jpg/v1/fill/w_511,h_170,al_c,q_80/e2aefa_adea8af0771845aa9e2f7e8c1c65a654~mv2.jpg'>");
}
if (d=="Tuesday" && hr==19) {
document.write("<img src='https://static.wixstatic.com/media/e2aefa_adea8af0771845aa9e2f7e8c1c65a654~mv2.jpg/v1/fill/w_511,h_170,al_c,q_80/e2aefa_adea8af0771845aa9e2f7e8c1c65a654~mv2.jpg'>");
}

【问题讨论】:

  • 我收到了...tz is not a function,可能是因为缺少 timeZone 插件,而是您加载 Moment 两次
  • @Beginner,只包含 moment.js script 一次 btw
  • but it not working 做了什么。 IE。 包括预期结果和实际结果。在您的描述中详细说明。即:When today is xx date then ..... but instead I see .....

标签: javascript html utc


【解决方案1】:

注意到两个脚本标签都在加载 moment.js,而 moment-timezone-with-data.js 也需要使用 tz()。

我用最新的时刻库尝试了以下代码,我得到了正确的结果

<html>
<head>
<script src="https://momentjs.com/downloads/moment.js">
</script>
  <script src="https://momentjs.com/downloads/moment-timezone-with-data.js">
</script>
</head>
<body>
<script type="text/javascript">
    document.write("<p>");
    var d = moment().tz('Europe/Oslo').format('dddd');
    var hr = moment().tz('Europe/Oslo').format('k') ;

  document.write(d + '<br>');
  document.write(hr + '<br>');
  </script>
</body>
</html>

对于UTC(不需要带有数据的时刻时区),

<html>
<head>
<script src="https://momentjs.com/downloads/moment.js">
</script>
</head>
<body>
<script type="text/javascript">
    document.write("<p>");
    var d = moment().utc().format('dddd');
    var hr = moment().utc().format('k') ;

  document.write(d + '<br>');
  document.write(hr + '<br>');
  </script>
</body>
</html>

【讨论】:

  • 嗨,我刚收到这个:jsfiddle.net/51432wxc 我不知道,也许我做错了什么
  • 去掉html的头部和身体标签应该没问题jsfiddle.net/51432wxc/1
  • 但它仍然使用用户日期而不是UTC
  • 我也是,但是当我更改计算机上的日期时,图像也发生了变化,这意味着它仍然使用基于计算机日期而不是 UTC 的图像
  • 因为您已将时区指定为欧洲/奥斯陆。更新为使用 UTC jsfiddle.net/51432wxc/2 你可以查看。
猜你喜欢
  • 1970-01-01
  • 2018-02-10
  • 2012-07-31
  • 1970-01-01
  • 1970-01-01
  • 2011-12-07
  • 1970-01-01
  • 1970-01-01
  • 2017-03-03
相关资源
最近更新 更多