【问题标题】:Angular date filter: Format month as local time角度日期过滤器:将月份格式化为当地时间
【发布时间】:2017-05-10 09:37:48
【问题描述】:

我有一个格式化为 ISO-8601 字符串的日期:overview.startTime = "2017-05-09T08:00:00Z"

我想在我的页面上显示这个并且我使用了以下代码:

Dagens arbetspass {{overview.startTime | date:'dd-MMM'}}

这显示为“Dagens arbetspass 09-May”。我的问题是这是一个瑞典网站,在瑞典,我们不会以大写字母开头的月份名称。 May也写成“maj”(最后是j而不是y)。我试图像这样添加时区

Dagens arbetspass {{overview.startTime | date:'dd-MMM':'Europe/Stockholm'}}

但这并没有改变输出。事实上,大多数月份在瑞典语中的拼写不同。有什么建议吗?

【问题讨论】:

    标签: angularjs date datetime-format datefilter


    【解决方案1】:

    只需使用javascript“toLocaleDateString”方法即可解决问题。该方法接受两个参数,分别是“locale”和“options”。

    瑞典语的语言环境将是“sv-se”。

    选项将为您的字符串提供格式。例如 -var options = { weekday: "long", year: "numeric", month:long",day:"numeric" };

    var d = new Date("2017-05-09T08:00:00Z");
    date.toLocaleDateString("sv-se", options)
    

    这是一个笨蛋https://plnkr.co/edit/G2IL5Zv0OAcVRMZS9HB7

    【讨论】:

    • 小警告:当使用不同语言环境(比如捷克语)的用户访问该站点时,他们会看到瑞典日期/日期名称。 Angular 的常规 DatePipe 使用 Intl 并尊重用户的浏览器/操作系统设置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-08
    • 2021-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-18
    • 2021-12-28
    相关资源
    最近更新 更多