在moments.js中选择默认时区



我以以下方式包含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>

相关内容

  • 没有找到相关文章

最新更新