2013-02-14 207 views
0

我使用PhoneGap構建了一個Android應用程序。這是代碼PhoneGap/Cordova無效日期

getReadableDate: function(date_){ 
     var date, datevalues; 
     console.log('Date input:' + date_); 
     date = new Date(date_); 
     console.log('Date value:' + date); 
     datevalues = [date.getFullYear(), 
       ("0" + (date.getMonth() + 1)).slice(-2), 
       ("0" + date.getDate()).slice(-2), 
       date.getHours() 
      ]; 
     return datevalues[2] + '/' + datevalues[1] + '/' + datevalues[0] + ' @ ' + datevalues[3] + ':00'; 
    }, 

這是我在控制檯中查看:

enter image description here

任何想法?

在Firefox中正常工作,但在移動android apk不是。 (版本2.2安卓)

回答

0

剛剛與科爾多瓦一起嘗試過。

var date = new Date("2013-02-14T18:00:00"); 
console.log(date); 
console.log(date.getDay()); 

它返回一個有效的日期對象。這可能是你的date_是一個對象,而不是一個實際的字符串值。嘗試將其轉換爲字符串,並看看你得到了什麼。像這樣。

date = new Date(String(date_)); 
+0

這是一個字符串。如果我手動輸入「2013-02-14T18:00:00」: http://gyazo.com/eb14bec40edd182f5f30ad798fea9649.png?1360865686 同樣的錯誤。 – beddamadre 2013-02-14 18:15:02

+0

代碼: ' getReadableDate:function(date _){ var date,datevalues; date = new Date(「2013-02-14T18:00:00」); console.log(date); datevalues = [date.getFullYear(), (「0」+(date.getMonth()+ 1))。slice(-2), (「0」+ date.getDate())。slice(-2 ), date.getHours() ]; return datevalues [2] +'/'+ datevalues [1] +'/'+ datevalues [0] +'@'+ datevalues [3] +':00'; }, ' – beddamadre 2013-02-14 18:15:30

+0

它可能是一個瀏覽器的墊片,jquery它的照顧。你有jQuery包括嗎? – BenDavidJamin 2013-02-14 18:16:03

0

同樣的問題在這裏測試Android 2.3.6的設備上。

這是我的解決方案:

// input = "2013-04-26T10:07:20.123Z" 
function strToDate(input) { 
    var dateStr = input.substring(0, 10); 
    var dateParts = dateStr.split('-'); 
    var timeStr = input.substring(11, 19); 
    var timeParts = timeStr.split(':'); 
    var result = new Date(Date.UTC(dateParts[0], dateParts[1]-1, 
     dateParts[2], timeParts[0], timeParts[1], timeParts[2])); 
    return result; 
} 

日期部分[1]爲-1個月指數從0開始

心連心

0

我認爲這是因爲你正在使用Android 2.2。我有同樣的問題(使用2.2),我通過使用Android 4.1的AVD解決了它。

這不是一個真正的解決方案,但我必須得出結論,它不是在Android 2.2 ...

0

工作最好的解決辦法是將其轉換爲字符串。我不確定它爲什麼必須這樣,但它適用於:

var newDate = String(new Date()); 

var contact = navigator.contacts.create(); 
contact.id = "123"; 
contact.birthday = newDate; 

contact.save(function(params) { 
    console.log(params); 
}, function(params) { 
    console.log(params) 
});