Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Timezone 在moments.js中选择默认时区_Timezone_Momentjs - Fatal编程技术网

Timezone 在moments.js中选择默认时区

Timezone 在moments.js中选择默认时区,timezone,momentjs,Timezone,Momentjs,我以以下方式包括moments.js <script src="../static/js/moment-timezone-full.js"></script> <script> $('.select_timezone').timezones(); </script> 但我不明白这在我的设置中是如何工作的 编辑:我的实现就是遵循这个例子 真的没有人知道解决这个问题的办法吗? 卡尔 编辑:我应该澄清为什么moment.tz.setDefau

我以以下方式包括moments.js

<script src="../static/js/moment-timezone-full.js"></script>
<script>
    $('.select_timezone').timezones();
</script>
但我不明白这在我的设置中是如何工作的

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

真的没有人知道解决这个问题的办法吗? 卡尔

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

moment.tz.setDefault('America/Los_Angeles');
我得到了javascript错误

Uncaught TypeError: Cannot read property 'setDefault' of undefined
我包括了教程中解释的时刻,意思是我包括了

from flask.ext.moment import Moment
...
moment = Moment()
...
moment.init_app(app)
在我的html模板中,我做到了

{% block scripts %}
{{ moment.include_moment() }}
{% endblock %}
如上图所示,js文件中包含了时刻时区。我忘了什么吗?
我只是想为选择设置默认时区。默认情况下,它会显示查看它的人的时区,但您可以通过专门定义它来覆盖它。 在您的示例中,您可以执行以下操作:


moment.tz.setDefault(“美国/纽约”);
$('.select_timezone').timezones();

查看您发布的内容后,看起来您使用的是jquery插件,当我查看代码时,它使用的是旧版本的moment.js(版本2.8.3),如所示

它还使用了旧版本的矩时区(它在timezones.full.js文件的底部,版本0.2.4)和矩.tz.setDefault()直到更高版本才被添加。到目前为止,最新版本是0.4.0。所以,我建议将您自己的文件与最新版本进行混搭,然后在您的系统上再次尝试,看看是否有效

更新:

所以,我看了看你的小提琴,并在允许

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

使用我自己的mashup-up moment.js、moment-timezone.js和jquery插件代码,它工作得很好。基本上,moment-timezone-full.js文件所做的就是将moment.js和moment-timezone.js与jquery插件代码混搭在一起。(它被列为一个外部库,您也可以在中找到它。我注意到它只会获取列表中该偏移量的第一个时区,而不是您指定的实际时区,但这是矩-timezone.js库的一个更大的问题,超出了这个问题的范围。

您可以指定您的意思吗"以此为例,"?你打算使用时区jQuery插件来绘制一个选择框吗?或者你想让自己的实现类似于时区插件吗?还要注意,你在问题中指出的
矩.tz.setDefault
方法是使用矩时区库设置默认时区的正确方法。那么,这里真正的问题是什么?@carl只需将
onchange
添加到您的select元素中,并使用javascript获取值,然后使用
moment.tz.setDefault
设置默认时区。怎么了?请澄清-您是在尝试配置moment.js的默认时区?还是在尝试设置下拉列表中的默认选定时区条目?它们是两件完全不同的事情。我在上面添加了一些解释,解释了为什么moment.tz.setDefault函数对我不起作用。感谢您的帮助Hi irnmn,感谢您的回答。我在上面添加了一些文本,解释了我在使用这种方法时遇到的错误。@carl您可以尝试另一种方法,只需手动设置时区,而不是se设置默认值。这里似乎有一些很好的详细信息。这是假设您正尝试这样做。正如其他人所评论的,您是在尝试设置“选择”菜单中的默认选项,还是为所有条目设置时区?我只是尝试为所选内容设置默认时区我假设您正在加载一些数据lt数据来自一个预构建的矩时区下载,或者您自己通过调用.load()来构建数据?他们有许多不同的版本,您是否正在使用他们的2014i版本?如果您正在使用,他们应该在其中包含moment.tz.setDefault命令供您使用。您是否尝试在moment.tz.setDefault之后立即使用moment.init_应用程序(应用程序)?the moment.init_应用程序(应用程序)仅适用于矩包。目前我看不出添加时区js文件如何突然将.tz属性赋予矩函数?如果我在jinja2的模板中使用矩函数(例如,{moment(date).calendar()}}),效果很好,但我不会在jinja2之外的任何地方使用矩函数…特别是我不使用.load()除使用预构建时区下载外,我将moment.js的版本更新为2.10.6,moment时区的版本更新为0.4.0。不幸的是,它没有解决问题。错误消息仍然是“Uncaught TypeError:moment.tz.setDefault不是函数”您是否更新了moment-timezones-full.js文件?这是一个过时版本中的文件。您是否可以通过放入console.log并检查正在响应的js文件来检查版本以确定正在加载的内容,该文件的注释中应该有该版本。是的,我更新了moment-timezones中的版本ll.js…打印出版本确认我现在使用的是moment.tz.version=0.4.0,moment.version=2.10.6…好的,非常感谢您的耐心…您必须对矩时区文件做很多更改,所以对于任何想要这样做的人,只需使用上面irnmn提供的文件…再次感谢
{% block scripts %}
{{ moment.include_moment() }}
{% endblock %}
moment.tz.setDefault("America/New_York");
$('.select_timezone').timezones();