2

我对现代Javascript(大约十年前我一直使用它)和globalize.js存在问题都比较陌生。Globalize.format不适用于其他语言环境或日期格式

这是我在头已经得到了,因为它涉及到全球化

<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:}参数似乎完全不会影响输出。更重要的是,我无法弄清楚为什么它不能将日期翻译成其他语言。我错过了包括吗?在他们的问题列表上的其他线程指出这是我需要的所有本地化日期。

+0

这可能是你错过了date.js模块。日期... *颤抖* – Jerther

回答

0

我建议你用这个来代替:

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.culture.fr.min.js

相关问题