我对现代 Javascript 比较陌生(大约十年前我一直在使用它),并且在使用 globalize.js 时遇到问题。
这就是我关于全局化的想法
<script src ="{% static "js/jquery-2.1.0.min.js" %}" type="text/javascript"></script>
<script src ="{% static "js/node_modules/globalize/dist/globalize.min.js" %}" type="text/javascript"></script>
<script>
$.get( "{% static "json/en/ca-gregorian.json" %}", Globalize.load );
$.get( "{% static "json/de/ca-gregorian.json" %}", Globalize.load );
$.get( "{% static "json/supplemental/likelySubtags.json" %}", Globalize.load );
$.get( "{% static "json/supplemental/timeData.json" %}", Globalize.load );
$.get( "{% static "json/supplemental/weekData.json" %}", Globalize.load );
console.log("short:" + Globalize.format( new Date( 2010, 10, 30, 17, 55 ), { datetime: "short" }));
console.log("medium:" + Globalize.format( new Date( 2010, 10, 30, 17, 55 ), { datetime: "medium" }));
console.log("long:" + Globalize.format( new Date( 2010, 10, 30, 17, 55 ), { datetime: "long" }, "de" ));
</script>
这是输出:
short:11/30/2010 5:55:00 PM (index):21
medium:11/30/2010 5:55:00 PM (index):22
Uncaught TypeError: Cannot read property 'calendar' of null
如您所见,我遇到了两个问题 - {datetime: } 参数似乎根本不影响输出。更重要的是,我不明白为什么它不能将日期翻译成其他语言。我错过了一个包含吗?他们的问题列表上的其他线程指出这就是我本地化日期所需的全部内容。
最佳答案
我建议你改用这个:
new Date().toLocaleDateString('de', { year: 'numeric', month: 'long', day: 'numeric' })
甚至:
new Date().toLocaleDateString(Globalize.culture().name, { year: 'numeric', month: 'long', day: 'numeric' })
Globalize.culture().name
假设您已手动或通过导入 globalize.culture.{culture}[.min].js
将可能的文化添加到 Globalize 中每个文件的 code> 文件,例如 globalize.culture.fr.min.js
关于javascript - Globalize.format 不适用于其他区域设置或日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22047937/