Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Angular4按年份对Json文件数据进行排序_Json_Angular_Sorting_Date - Fatal编程技术网

使用Angular4按年份对Json文件数据进行排序

使用Angular4按年份对Json文件数据进行排序,json,angular,sorting,date,Json,Angular,Sorting,Date,我在json文件中有一些数据,但顺序不对,我需要按财政年度而不是按常规年度显示数据 例如,代替1月17日、2月17日、3月17日、4月17日、5月17日、6月17日、7月17日、8月17日、9月17日、10月17日、11月17日、12月17日。 需要是3月17日、4月18日、5月18日、6月18日、7月18日、8月18日、9月18日、10月18日、11月18日、12月18日、1月19日、2月19日、4月19日、3月19日 如何对json文件数据进行排序,使其以第二顺序显示 HTML: 这是用于显

我在json文件中有一些数据,但顺序不对,我需要按财政年度而不是按常规年度显示数据

例如,代替1月17日、2月17日、3月17日、4月17日、5月17日、6月17日、7月17日、8月17日、9月17日、10月17日、11月17日、12月17日。 需要是3月17日、4月18日、5月18日、6月18日、7月18日、8月18日、9月18日、10月18日、11月18日、12月18日、1月19日、2月19日、4月19日、3月19日

如何对json文件数据进行排序,使其以第二顺序显示

HTML: 这是用于显示月份数据的HTML代码

<table id ="t2">
                    <tr>
                        <th class="line">Line 1</th>
                        <th class="y18" *ngFor="let volumes of volumes">{{ volumes.month | uppercase }}</th>
                    </tr>
为了更好地理解这是一个json文件,其中只包含几个月: { “id”:2, “月份”:“2017-03-01”, } { “id”:2, “月份”:“2017-04-01”, } { “id”:2, “月份”:“2017-05-01”, } { “id”:2, “月份”:“2017-06-01”, } { “id”:2, “月份”:“2017-07-01”, } { “id”:2, “月份”:“2017-08-01”, } { “id”:2, “月份”:“2017-09-01”, } { “id”:2, “月份”:“2017-10-01”, } { “id”:2, “月份”:“2017-04-01”, } { “id”:2, “月份”:“2017-04-01”, } { “id”:2, “月份”:“2017-11-01”, } { “id”:2, “月份”:“2017-12-01”, } { “id”:2, “月份”:“2018-01-01”, } { “id”:2, “月份”:“2018-02-01”, } { “id”:2, “月份”:“2018-03-01”, } { “id”:2, “月份”:“2018-04-01”, } { “id”:2, “月份”:“2018-05-01”, } { “id”:2, “月份”:“2017-03-01”, } { “id”:2, “月份”:“2017-04-01”,
}请尝试下面的方法。这将使您对如何为数据实现它有一个很好的了解

//代码在这里
var financialYear=2001;
变量日期=['2000-05-01'、'2001-04-01'、'2001-05-01'、'2001-03-01'、'2001-02-01'、'2002-02-01'、'2002-03-01'、'2002-04-01'、'2002-05-01'];
var filteredDates=dates.filter(函数(日期){
日期=新日期(日期);
var year=date.getFullYear();
var mon=date.getMonth();
如果((年===财务年度和周一>1)| |(年===财务年度+1和周一<4)){
返回true;
}
返回false;
});
log('filteredDates:',filteredDates);
var sortedDates=filteredDates.sort(函数(d1,d2){
返回新日期(d1)-新日期(d2);
})

log('sortedDates:',sortedDates)你的json看起来怎么样?你能提供数组吗?我在问题中添加了一些json,基本上每个集合都有一个id、月、行和模型卷,这是一个单独的数组。我想按月份对这些数据进行排序,但要按指定的顺序进行。因此,如果是下一个财政年度,2017-02-01
不是总是比2017-03-01先到吗?所以财政年度总是从3月开始,到4月结束。2018财年:4月18日、5月18日、6月18日、7月18日、8月18日、9月18日、10月18日、11月18日、12月18日、1月19日、2月19日、3月19日。然而,我还需要包括财政年度的最后一个月,即3月18日和下一个财政年度的第一个月,即4月19日。我认为这是正确的,但我在实施这一点上遇到了困难。我的问题是日期变量。它表示不能将卷分配给字符串类型。卷是存储在变量卷中的json文件数据。卷数:卷数[];财务年度:2017年;filteredDates=this.volumes.filter(函数(日期){date=new date(日期);var year=date.getFullYear();var mon=date.getMonth();if((year==financialyear&&mon>1)|(year==financialyear+1&&mon<4)){return true;}return false;});log('filteredDates:',filteredDates)<代码>卷无法分配给类型字符串,这是由于类型不匹配造成的。解决方案只是给你一个如何实现的想法,但它不会直接应用于你的问题。你需要从那里提取数据,一旦你有了一个日期字符串数组,它就可以工作了。如果在这种情况下,您只想删除该错误,您可以在代码中分配
卷:any
,但这是不可取的。因此,我需要从卷数组中收集一个日期字符串数组。如果我这样做了,并且文件数据发生了变化,那么日期字符串也会发生变化。不,您需要以这样一种方式来处理它:一旦数据发生变化,相同的函数就会再次启动。如果没有看到代码,我无法在这方面为您提供太多帮助。这样理解有点困难。
{
    "id": 1,
    "month": "2017-03-01",
    "line": 1,
    "modelVolumes": [
        {
            "id": 367,
            "model": "car1",
            "number": 615
        },
        {
            "id": 368,
            "model": "car2",
            "num": 5925,
        },
        {
            "id": 369,
            "model": "car3",
            "num": 0
        }
    ]
},
{
        "id": 2,
        "month": "2017-04-01",
        "line": 1,
        "modelVolumes": [ ]
},
{
    "id": 12,
    "month": "2018-02-01",
    "line": 1,
    "modelVolumes": []
}