我正在使用PhoneGap构建一个Android应用程序。这是代码
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';
},
这就是我在控制台中查看的内容:
有什么想法吗?
在Firefox中正常工作但在移动设备上没有apk。 (2.2版android)
答案 0 :(得分:0)
刚试过cordova。
var date = new Date("2013-02-14T18:00:00");
console.log(date);
console.log(date.getDay());
它返回一个有效的日期对象。可能是您的date_是对象而不是实际的字符串值。尝试将其转换为字符串,看看你得到了什么。像这样。
date = new Date(String(date_));
答案 1 :(得分: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;
}
dateParts [1] -1,因为月份索引从0开始。
HTH
答案 2 :(得分:0)
我决定使用这个很棒的lib:http://momentjs.com/
答案 3 :(得分:0)
我认为这是因为你使用的是Android 2.2。我有同样的问题(在2.2上使用)我通过使用带有Android 4.1的AVD来解决它。
这不是一个真正的解决方案,但我必须得出结论,它不适用于Android 2.2 ...
答案 4 :(得分: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)
});