代码之家  ›  专栏  ›  技术社区  ›  Ayushi Tomar

使用primeng和angular 5时,无法对“dd/mmm/yyyy”中的turbo table列进行排序

  •  0
  • Ayushi Tomar  · 技术社区  · 6 年前

    我需要根据列的标题对表进行排序。

    为此,我使用了PrimeNG turbotable排序,一切都很好,但当我尝试以“dd-mmm-yyyy”(2016年11月12日)格式对包含日期的列进行排序时,它不会根据月份进行排序,只会根据dd进行排序。

    我将其用于angular 5

    Link from i took the code

    有人能帮忙吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Eliseo    6 年前

    @Ayushi在你的客户名单中

    customSort(event: SortEvent) {
            event.data.sort((data1, data2) => {
    
                let value1Data = data1[event.field];
                let value2Data = data2[event.field];
    
                let value1=this.transform(value1Data); //<--this
                let value2=this.transform(value2Data); //<--this
                ....
           }
    }
    //make a const array of meses
    const meses:string[]=["Ene","Feb","Mar","Abr","May","Jun",
               "Jul","Ago","Sep","Oct","Nov","Dic"];
    //function transform
    transform(value:string)
    {
         let step:string[]=value.split('-'); //separate the date in [dd,mmm,yyyy]
         //month will be 01,02,03..12
         let month=meses.indexOf(step[1])<9?'0'+(meses.indexOf(step[1])+1):''+(meses.indexOf(step[1])+1)
         return step[2]+'-'+month+'-'+step[0]
     }