0

我正在用 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版安卓)

4

5 回答 5

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

于 2013-04-26T10:51:43.333 回答
0

刚用科尔多瓦试过这个。

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

它返回一个有效的日期对象。您的 date_ 可能是一个对象,而不是实际的字符串值。尝试将其转换为字符串,看看你会得到什么。像这样。

   date = new Date(String(date_));
于 2013-02-14T16:00:56.910 回答
0

我解决了使用这个很棒的库: http: //momentjs.com/

于 2013-05-01T12:52:11.807 回答
0

我认为这是因为您使用的是 Android 2.2。我遇到了同样的问题(在 2.2 上使用),我通过使用带有 Android 4.1 的 AVD 解决了这个问题。

这不是一个真正的解决方案,但我必须得出结论,它不适用于 Android 2.2 ......

于 2013-06-20T16:18:59.507 回答
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)
});
于 2016-04-09T16:47:42.730 回答