我以以下方式包含moments.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超级教程中解释的时刻,这意味着我做了
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。所以,我建议你把自己的文件和最新的版本混在一起,然后在你的系统上再试一次,看看它是否有效。
更新:所以,我看了你的小提琴,并在你的小提琴上更新了它,允许
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库的一个更大的问题,并且超出了这个问题的范围。
默认情况下,它显示查看它的人的时区,但是您可以通过特别定义它来覆盖它。在你的例子中,你可以这样做:
<script src="../static/js/moment-timezone-full.js"></script>
<script>
moment.tz.setDefault("America/New_York");
$('.select_timezone').timezones();
</script>