用javascript转换数组中的日期

convert date from array in javascript

本文关键字:日期 数组 javascript 转换      更新时间:2023-09-26

我很难弄清楚如何获取日期戳并将其转换为可读日期。我试过不同的方法,但似乎遗漏了一些东西。我能够获得数组,循环遍历值并获取我需要的东西,但我似乎无法正确转换时间戳(真的)。

这是我的完整代码和一些注意事项:

<script>
        var ctx = $("#ertChart").get(0).getContext("2d");
        var myNewChart = new Chart(ctx);
        var ert = @Html.Raw(Json.Encode(Model));  // contains [{""H":"E","consumption":0.46,"readingdatetime":"'/Date(1410678000000)'/"}]
        var ertLabel = []; 
        var ertValue = [];
        for (var i in ert) {
            ertLabel.push(ert[i].formatdate('yy-mm-dd', readingdatetime));  // << this is where I've been playing with the date formatting in different ways
            ertValue.push(ert[i].consumption);
        }
        var ertLabelString = ertLabel.join(",");
        var ertValueString = ertValue.join(",");
        blah
        var data = {
            labels: [ertLabelString],
            datasets: [
                {
                    label: "My First dataset",
                    fillColor: "rgba(220,220,220,0.2)",
                    strokeColor: "rgba(220,220,220,1)",
                    pointColor: "rgba(220,220,220,1)",
                    pointStrokeColor: "#fff",
                    pointHighlightFill: "#fff",
                    pointHighlightStroke: "rgba(220,220,220,1)",
                    data: [ertValueString]
                }
            ]
        }
        new Chart(ctx).Line(data);
    </script>

我想做的是将readingdatetime转换为中可读的日期

mm-dd-yyy HH:mm格式(如果H=E )

HH:MM,如果H=I

有人能给我指正确的方向吗?

修改后的代码在这里爆炸:

var ert = @Html.Raw(Json.Encode(Model));
        var ertLabel = []; 
        var ertValue = [];
        for (var i in ert) {
            var dateString = moment(ert[i].readingdatetime).format("MM-DD-YYYY HH:mm");
            ertValue.push(ert[i].consumption);
        }
        var ertLabelString = dateString.join(",");  // << Exception property or method not valid 'Join'
        var ertValueString = ertValue.join(",");

类似的东西?

http://jsfiddle.net/OxyDesign/vs2e618L/

JS-

var date = new Date(1410678000000),
    month = date.getMonth()+1, //mm
    day = date.getDate(), //dd
    year = date.getFullYear(), //yyyy
    hours = date.getHours(), //HH
    minutes = date.getMinutes(), //MM
    dateString;
if(month <= 9) month = '0'+month;
if(day <= 9) day = '0'+day;
if(hours <= 9) hours = '0'+hours;
if(minutes <= 9) minutes = '0'+minutes;
dateString = month+'-'+day+'-'+year+' '+hours+':'+minutes;
console.log(dateString);

您会发现在JavaScript中格式化日期并非易事。考虑使用一个库,比如moment.js,这会让事情变得更容易,并涵盖你可能没有想过的边缘情况。

moment(readingdatetime).format("MM-DD-YYYY HH:mm")