我使用以下过滤器:
{{music.start | date : "dd MMMM yyyy"}}
Angular在计算机的语言环境中输出月份。但我让我的用户在应用程序中选择语言环境。
localize.language = "en"
告诉Angular以该语言而不是计算机区域设置输出格式化日期有什么好方法?
我幻想着类似的东西:
{{music.start | date : "dd MMMM yyyy" : localize.language}}
但我很感激任何解决方案的想法。
答案 0 :(得分:0)
你要么
toLocaleDateString()
转换控制器中的日期,并将其作为属性附加到music
对象或{{music.start| date:'shortTime'}}
这样的符号名称 - 但是,如果没有您要查找的时间信息,这不会产生真正的短日期。这里有blog post关于格式化特定于区域设置的不同方法。
由于您提交了固定日期字符串并希望根据区域设置重新格式化,因此您的想法无法运行。这很容易出错并且难以理解。
答案 1 :(得分:0)
您可以在控制器中尝试以下示例
var options = { month: 'long', day: 'numeric',year: 'numeric' };
console.log(music.start.toLocaleString('en-US', options))
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString网址上还提供了有关 toLocaleString()的更多信息。
答案 2 :(得分:0)
这是文档。
https://angular.io/api/common/DatePipe
他们给出的例子是:
<!--output 'Lundi 15 Juin 2015 à 09:03:01 GMT+01:00'-->
<p>The full date/time in french is: {{today | date:'full':'':'fr'}}</p>