【发布时间】:2017-04-20 18:22:25
【问题描述】:
我有一个很奇怪的问题。我正在使用 jQuery 3、Boostrap 3 和这个DateTimepicker。问题是,在第一次尝试的日期时间选择器中,我总是得到无效的语言环境(总是英语),但在第二次尝试(以及进一步)时它是有效的。我的网站的结尾是这样的:
<script>
$.when($.ready).then(function () {
moment().locale('da');
$('.datetimepicker').datetimepicker({
locale: 'da',
viewMode: 'years',
format: 'YYYY-MM-DD',
defaultDate: false,
useCurrent: false,
viewDate: '1999-04-20'
});
})
</script>
</body>
</html>
我添加了这个moment().locale('da');,因为我认为它可以解决问题,但在我的情况下并没有。
任何线索我可以如何强制它使其工作?
如果它很重要,我正在使用 WebPack,我的 JS 文件如下所示:
window.$ = window.jQuery = require('jquery');
require('bootstrap-sass');
require('bootstrap-select');
require('eonasdan-bootstrap-datetimepicker');
var moment = require('moment');
window.moment = moment;
似乎当我更改此文件时:
var moment = require('moment');
window.moment = moment;
到
var moment = require('moment');
moment.locale('da');
window.moment = moment;
区域设置在第一次尝试时以有效方式设置。不幸的是,我有多种语言,拥有多个 JS 文件只是为了让时刻使用有效的语言环境可能没有多大意义。
有没有办法解决这个问题?
【问题讨论】:
-
Moment 提供了一个
moment-with-locales文件,其中包含每个支持的语言环境,我不知道如何在 webpack 中使用它,但也许文档中的 this section 可以帮助你。加载所需的语言环境文件后,您可以使用其locale函数动态更改 datetimepicker 语言环境。 -
您能在 JSFiddle 上创建一个重现此问题的演示吗?
-
顺便说一句,你为什么使用
$.when($.ready).then(function () {})而不仅仅是$(function() {})? -
@MichałPerłakowski 符号的好点,我不知道,可能在文档的某个地方看到它,并认为必须在 jQuery 3 中使用这种符号(以前我一直在使用 v2)
标签: javascript webpack momentjs datetimepicker eonasdan-datetimepicker