【问题标题】:Time format change according to time settings of phone in ionic5 angular9时间格式根据 ionic 5 angular 9 中手机的时间设置而变化
【发布时间】:2021-01-29 13:56:25
【问题描述】:

我需要根据手机设置(安卓和IOS)解析时间。如果我在设备中选择 24 小时,需要在应用程序中显示 24 小时日期,对于 12 小时选择,需要在应用程序中显示 12 小时时间格式。如何通过代码找到我在设备中选择了哪种时间格式。

【问题讨论】:

  • 这里可能已经回答了stackoverflow.com/questions/60740996/…
  • 但这是为了浏览器支持。我在 android 和 ios 设备中需要这个
  • 它也应该适用于离子应用
  • 开始日期的格式是什么?你能把它作为一个 ISO 字符串传递给你吗,在这种情况下,它会自动包含时差
  • @Andrei 我在离子应用程序中尝试过这个,但是当将设备时间设置切换为 24 小时或 12 小时时,它总是返回真值(即 24 小时)。

标签: angular ionic-framework time moment-timezone angular-moment


【解决方案1】:

您可以使用以下插件:Globalization
这是用于文档的 Github 存储库:link

基本上你需要使用插件提供的getDatePattern方法。

navigator.globalization.getDatePattern(successCallback, errorCallback, options);

这将返回一个模式字符串,以根据客户的用户偏好格式化和解析日期。
例如:
如果设置为 en_US 语言环境,此示例将显示一个弹出对话框,其中包含诸如模式之类的文本:M/d/yyyy h:mm a:

function checkDatePattern() {
    navigator.globalization.getDatePattern(
        function (date) { alert('pattern: ' + date.pattern + '\n'); },
        function () { alert('Error getting pattern\n'); },
        { formatLength: 'short', selector: 'date and time' }
    );
}

然后您可以使用该模式相应地显示您的日期和时间。
如果您需要了解有关日期时间模式的更多信息,请访问link

您还可以查看Intl,它使您能够在不使用插件的情况下设置日期和时间格式:
Intl.DateTimeFormat
Intl.DateTimeFormat options

【讨论】:

    【解决方案2】:

    您在谈论区域设置。我认为您正在寻找使用离子日期时间。 它解决了您需要的所有问题,默认情况下它将使用手机上用户的区域设置配置。

    重要提示:默认情况下,ion-datetime 将显示相对于用户时区的值。给定 09:00:00+01:00 的值,对于时区偏移量为 -04:00 的用户,日期时间组件会将其显示为 04:00:00-04:00。要更改显示以使用不同的时区,请使用下面描述的 displayTimezone 属性。

    您需要的所有样本信息都在这里: https://ionicframework.com/docs/api/datetime

    干杯。

    【讨论】:

      猜你喜欢
      • 2012-10-29
      • 1970-01-01
      • 1970-01-01
      • 2021-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-12
      • 2011-08-04
      相关资源
      最近更新 更多