select 默认时区 moments.js

select default timezone in moments.js

我用下面的方式包含moments.js

<script src="../static/js/moment-timezone-full.js"></script>
<script>
    $('.select_timezone').timezones();
</script>

然后我在 html 中将时区 selection 提供给我的用户

<div class="row">
    <div class="col-lg-4">
        <select class="select_timezone" name="select_timezone"></select>
    </div>
</div>

我的问题是如何 select 默认时区?我看到可以用

做到这一点
moment.tz.setDefault(String);

但我不明白这在我的设置中如何工作?

编辑:我的实现就是遵循这个例子...

http://www.jqueryscript.net/time-clock/Easy-Timezone-Picker-with-jQuery-Moment-js-Timezones.html

真的没有人知道解决办法吗? 卡尔

编辑:我应该澄清为什么 moment.tz.setDefault 不起作用。当我添加行

moment.tz.setDefault('America/Los_Angeles');

我收到 javascript 错误

Uncaught TypeError: Cannot read property 'setDefault' of undefined

我包括了 flask mega-tutorial 中解释的时刻,意思是我这样做

from flask.ext.moment import Moment
...
moment = Moment()
...
moment.init_app(app)

在我的 html 模板中我做

{% block scripts %}
{{ moment.include_moment() }}
{% endblock %}

moment-timezones 包含在 js 文件中,如上所示。我忘记了什么吗? 我只是想为 selection

设置默认时区

默认情况下它显示查看它的人的时区,但您可以通过专门定义它来覆盖它。 在您的示例中,您可以执行以下操作:

<script src="../static/js/moment-timezone-full.js"></script>
<script>
  moment.tz.setDefault("America/New_York");
  $('.select_timezone').timezones();
</script>

查看您发布的内容后,您似乎正在使用来自 https://github.com/firstandthird/timezones which when I take a look at the code, it using an older version of moment.js (version 2.8.3) as seen at https://github.com/firstandthird/timezones/blob/master/dist/timezones.full.js

的 jquery 插件

它还在使用旧版本的时刻时区(它在 timezones.full.js 文件的底部引入,版本 0.2.4)并且 moment.tz.setDefault() 不是添加到更高版本。目前最新的是 0.4.0。因此,我建议将您自己的文件与最新版本混合在一起,然后在您的系统上再次尝试,看看它是否有效。

更新:

所以,我查看了您的 fiddle,并在 your fiddle 更新了它,允许

moment.tz.setDefault("America/New_York");
$('.select_timezone').timezones();

用我自己混合的 moment.js、moment-timezone.js 和 jquery 插件代码,它工作得很好。基本上所有 moment-timezone-full.js 文件所做的就是将 moment.js 和 moment-timezone.js 与 jquery 插件代码混合在一起。 (它被列为外部库之一,您也可以在 https://gist.github.com/iron-man/deedd9efe988318d842a 找到它。我确实注意到它只会为该偏移量选择列表中的第一个时区,而不是您指定的实际时区,但这对于 moment-timezone.js 库来说是一个更大的问题,超出了这个问题的范围。