我以以下方式包含 moment.js
<script src="../static/js/moment-timezone-full.js"></script>
<script>
$('.select_timezone').timezones();
</script>
然后我在 html 中将时区选择提供给我的用户
<div class="row">
<div class="col-lg-4">
<select class="select_timezone" name="select_timezone"></select>
</div>
</div>
我的问题是如何选择默认时区?我看到有人可以做到这一点
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 super 教程中解释的时刻,意思是我做的
from flask.ext.moment import Moment
...
moment = Moment()
...
moment.init_app(app)
在我的 html 模板中我做了
{% block scripts %}
{{ moment.include_moment() }}
{% endblock %}
moment-timezones 包含在 js 文件中,如上所示。我是不是忘记了什么?
我只是想为选择设置默认时区
最佳答案
查看您发布的内容后,您似乎正在使用来自 https://github.com/firstandthird/timezones 的 jquery 插件。当我查看代码时,它使用旧版本的 moment.js(版本 2.8.3),如 https://github.com/firstandthird/timezones/blob/master/dist/timezones.full.js 所示。
它还使用旧版本的 moment-timezone(它在 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 库的一个更大问题,超出了这个问题的范围。
关于timezone - 在 moment.js 中选择默认时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32147182/