将数组中的值转换为日期对象jquery

时间:2015-10-29 21:57:34

标签: javascript jquery arrays json

我有来自调用.net控制器的数组。

我正在获取这些日期值:

/日期(1445256000000)/和/日期(1445256900000)/

而不是我希望能够获得正确的日期值。

现在因为我有对象数组,所以我希望能够在将它们发送到视图之前在数组中更新它们。

这就是我所拥有的:

$http({
            method: 'GET',
            url: '/Driver/GetDriverTrips',
            params: { id: id }
        }).
        success(function (data) {
            var startDate= new Date(data[0].StartTime.match(/\d+/)[0] * 1);
            alert(myDate);

        });

所以这个转换工作正常,但问题是我想循环遍历数组中的所有相同对象,进行转换然后再将其保存在数组中。

我可以做任何功能吗?

由于

3 个答案:

答案 0 :(得分:1)

尝试使用map

var array = $(data).map(function(){
    return new Date(this.StartTime.match(/\d+/)[0] * 1);;
});

或者,覆盖StartTime

$.each(data, function(index, element) {
    element.StartTime = new Date(element.StartTime.match(/\d+/)[0] * 1);
});

答案 1 :(得分:0)

这样的东西
$.each(data, function(index, element) {
    var startDate= new Date(element.StartTime.match(/\d+/)[0] * 1);
});

将循环遍历所有返回的元素并提取日期。

你可以拥有第二个数组,比如finalDates,并在循环时将转换后的日期推送到该数组中。

答案 2 :(得分:0)

我的方法使用通常的for语句,这个语句有点冗长,但我更喜欢,因为长期是遍历数组的最有效方法。 因此,对于每次迭代,我在位置datai)处得到data[i],并将结果存储在名为finalDate的临时变量中,然后最终将其推送到finalDates数组。那就是你要找的东西?

var finalDates = [];
$http({
    method: 'GET',
    url: '/Driver/GetDriverTrips',
    params: { id: id }
}).
success(function (data) {
    var finalDate;

    for(var i=0; i<data.length; i++) {
        finalDate = new Date(data[i].StartTime.match(/\d+/)[i] * 1);
        finalDates.push(finalDate);
    }
});