Javascript PhoneGap/Cordova无效日期

Javascript PhoneGap/Cordova无效日期,javascript,cordova,Javascript,Cordova,我正在用PhoneGap构建一个android应用程序。这是密码 getReadableDate: function(date_){ var date, datevalues; console.log('Date input:' + date_); date = new Date(date_); console.log('Date value:' + date); datevalues = [date.get

我正在用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中可以正常工作,但在移动android apk上不能。(安卓2.2版)

刚刚用cordova试用过

var date = new Date("2013-02-14T18:00:00");
console.log(date);
console.log(date.getDay());
它返回一个有效的日期对象。可能您的日期是一个对象,而不是实际的字符串值。试着把它转换成一个字符串,看看你得到了什么。像这样

   date = new Date(String(date_));

在安卓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

我决定使用这个很棒的库:

我想这是因为你在使用Android 2.2。我也有同样的问题(在2.2上使用),我通过使用安卓4.1上的AVD解决了这个问题


这不是一个真正的解决方案,但我必须得出结论,它在Android 2.2上不起作用…

最好的解决方案是将其转换为字符串。我不知道为什么会这样,但它与:

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)
});

这是一根绳子。如果我手动输入“2013-02-14T18:00:00”:同样的错误。代码:`getReadableDate:function(date){var date,datevalues;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()];返回日期值[2]+'/'+datevalues[1]+'/'+datevalues[0]+'@'+datevalues[3]+':00';},`它可能是一个由jquery处理的浏览器填充程序。你有jquery吗?你测试的android版本是什么?我是在4.2上运行的不,我是在安卓2.2上运行的!谢谢