2014-04-02 54 views
0

我在項目中使用科爾多瓦2.9。在科爾多瓦獲取設備時間格式

我使用Moment.js處理大量的日期/時間格式,因爲應用程序顯示英文和中文文本。

我有一個功能請求,要求如果設備時間格式是12小時或24小時格式,那麼應用程序應該反映這一點。

目前我們全程使用24小時制。

有沒有辦法獲得在設備中設置的時間格式,然後用它來設置應用程序級別的時間格式?

回答

2

你需要編寫一個插件來檢測時間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")); 

的Android

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

的插件開發復this或者Android或者IOS

+1

謝謝。這正如我所料,Cordova API中沒有任何東西。欣賞先機。 – RyanP13

+1

@ RyanP13你爲這個問題寫了一個插件嗎? –

+0

對於那些有興趣的人,我只爲iOS創建了一個插件(現在)https://github.com/greghuels/cordova-plugin-24hour-setting –

2

你可以科爾多瓦的內置globalization plugin.如果るn表示例如,

navigator.globalization.dateToString(
    new Date(), 
    function (date) { alert('date: ' + date.value + '\n'); }, 
    function() { alert('Error getting dateString\n'); }, 
    { formatLength: 'short', selector: 'date and time' } 
); 

date.value將舉行dateString將顯示的時間格式(只檢查是否「AM」或「PM」是字符串中)。

+0

這應該是被接受的答案。 – Vahid

+0

有沒有辦法讓這個以時間戳格式? – lio