如何检查 Cordova 应用程序是不是在 12 (AM/PM) 或 24 小时环境中运行

Posted

技术标签:

【中文标题】如何检查 Cordova 应用程序是不是在 12 (AM/PM) 或 24 小时环境中运行【英文标题】:How to check if Cordova app is running in a 12 (AM/PM) or 24 hour environment如何检查 Cordova 应用程序是否在 12 (AM/PM) 或 24 小时环境中运行 【发布时间】:2016-03-08 07:11:29 【问题描述】:

是否可以检测用户的机器是使用 12 小时制 (am/pm) 还是 24 小时制

我试过下面的代码,但它不适用于chrome默认浏览器

var date = new Date(Date.UTC(2012, 11, 12, 3, 0, 0));
var dateString = date.toLocaleTimeString();

if (dateString.match(/am|pm/i) || date.toString().match(/am|pm/i) )

    //12 hour clock

else

    //24 hour clock

请建议任何可以为 iosandroid 提供我的系统时间格式的 cordova 插件或 javascript 代码。

【问题讨论】:

帮助完成这个:- ***.com/questions/566265/… 【参考方案1】:

使用 android 和 ios cordova app 插件代码和信息

ios 代码

  NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
  [formatter setLocale:[NSLocale currentLocale]];
  [formatter setDateStyle:NSDateFormatterNoStyle];
  [formatter setTimeStyle:NSDateFormatterShortStyle];
  NSString *dateString = [formatter stringFromDate:[NSDate date]];
  NSRange amRange = [dateString rangeOfString:[formatter AMSymbol]];
  NSRange pmRange = [dateString rangeOfString:[formatter PMSymbol]];
  BOOL is24h = (amRange.location == NSNotFound && pmRange.location == NSNotFound);

  NSLog(@"IS 24 h format%@\n",(is24h ? @"YES" : @"NO"));

安卓代码

String value = android.provider.Settings.System.getString(context.getContentResolver(), android.provider.Settings.System.TIME_12_24);

检查 Cordova 中的插件开发 this 或 Android 或 IOS

【讨论】:

【参考方案2】:

我会为此使用普通的 javascript:

var dateStringToLookAt = (new Date).toLocaleString(); 

适用于所有现代浏览器,它也应该适用于任何 Cordova 应用程序。

然后对照地区地图及其时间格式检查navigator.language

【讨论】:

【参考方案3】:

我的一个项目也需要这个,所以我构建了cordova-plugin-24hour-setting 来支持 Android 和 iOS。这是基于 Kalpesh Kikani 的有用回答。随意使用。

【讨论】:

以上是关于如何检查 Cordova 应用程序是不是在 12 (AM/PM) 或 24 小时环境中运行的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Cordova Android 应用程序中禁用复制粘贴、拼写检查、自动完成

在 Cordova 中检查是不是在 iOS 或 Android 上注册了 URL 方案

错误:未找到插件“org.apache.cordova.barcodeScanner”,或者不是 CDVP 插件。检查 config.xml 中的插件映射

如何检查cordova/phonegap项目的cordova android版本?

Cordova:检查用户是不是启用推送通知的干净方法

Cordova 在循环内检查 appAvailability 失败。如何让循环等到 appAvailability.check 执行?