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

相關問題