我正在一个项目中使用 Cordova 2.9。
我使用 Moment.js 来处理许多日期/时间格式,因为应用程序以英语和普通话显示文本。
我有一个功能请求,要求如果设备时间格式是 12 小时或 24 小时格式,那么应用程序应该反映这一点。
目前,我们始终使用24小时格式。
有没有办法在设备中设置时间格式,然后使用它在应用程序级别设置时间格式?
您需要编写一个插件来检测时间 forma.in IOS 通过目标 C 我们可以检测设备时间格式,与在 Java (Android) 中相同。 因此,请检查下面的代码并编写一个插件。
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);
对于插件开发,请检查此或安卓或IOS
你可以只使用cordova内置的全球化插件。例如,如果您运行,
navigator.globalization.dateToString(
new Date(),
function (date) { alert('date: ' + date.value + 'n'); },
function () { alert('Error getting dateStringn'); },
{ formatLength: 'short', selector: 'date and time' }
);
date.value
将保存一个 dateString,该字符串将显示时间格式(只需检查字符串中是否有"AM"或"PM")。