【问题标题】:Date should be calculated and shown with respect to Language code应根据语言代码计算和显示日期
【发布时间】:2023-01-10 18:09:18
【问题描述】:

在一个用例中,我需要根据当前语言环境在角度前端 UI 中显示日期(我们可以将其设置为应用级)代码。

根据我从服务器收到的以下值,需要计算日期

  • 通过服务器响应的纪元时间 /* 1672379463223 */
  • 语言代码 /* it-IT, fr-FR, es-ES.... */

场景 1:

  • 如果我将应用程序中的语言环境更改为英文, 那么结果应该是

    2022 年 12 月 30 日星期五 11:21:03.223 AM GMT+05:30

场景 2:

  • 如果我将应用程序中的语言环境更改为ru-RU, 那么结果应该是

    2022 年 12 月 30 日星期五 8:51:03.223 AM GMT+03:00

无论如何,我们的预期结果不取决于浏览器/机器日期时区,它完全取决于我们从后端获取的语言环境代码。

有人可以帮我解决这个问题,我该如何继续。

【问题讨论】:

    标签: javascript angular datetime momentjs moment-timezone


    【解决方案1】:

    构造日期对象,然后使用以语言环境和选项作为参数的 toLocaleString 方法:

    new Date(1672379463223).toLocaleString("en-US", {weekday:"long", month:"long", day:"numeric", minute:"numeric", hour:"numeric", fractionalSecondDigits:3})
    

    有关更多信息,请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString

    或者,如果您不想在“DATE at TIME”中设置格式,您可以对日期部分使用方法两次,对时间部分使用一次。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-22
      • 1970-01-01
      • 1970-01-01
      • 2022-01-03
      • 1970-01-01
      • 2012-11-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多