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 库来说是一个更大的问题,超出了这个问题的范围。
我用下面的方式包含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 库来说是一个更大的问题,超出了这个问题的范围。