Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.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
Javascript 使用Jquery按日期排序&;HTML_Javascript_Jquery_Html - Fatal编程技术网

Javascript 使用Jquery按日期排序&;HTML

Javascript 使用Jquery按日期排序&;HTML,javascript,jquery,html,Javascript,Jquery,Html,我正在按日期对一些数据进行排序。数据实际上以HTML格式保存在div-->span下。 然而,我做了下面的函数,但由于某些原因,它不能像我期望的那样正确地处理它们 case "Import_Date_asc": var elems = $.makeArray($review_items); elems.sort(function(a, b) { var a_date = $(a).find('.panel-heading .data-source').text(

我正在按日期对一些数据进行排序。数据实际上以HTML格式保存在div-->span下。 然而,我做了下面的函数,但由于某些原因,它不能像我期望的那样正确地处理它们

case "Import_Date_asc":
    var elems = $.makeArray($review_items);

    elems.sort(function(a, b) {
        var a_date = $(a).find('.panel-heading .data-source').text(),
            b_date = $(b).find('.panel-heading .data-source').text();

        a_date = a_date.split(' / ');
        a_date = a_date[1].split(' UTC');

        b_date = b_date.split(' / ');
        b_date = b_date[1].split(' UTC');

        console.log(a_date[0], b_date[0]);

        //return new Date(a_date[0]) > new Date(b_date[0]);
        return Date.parse(a_date[0]) > Date.parse(b_date[0]);
    });

    $review_container.html(elems);

    break;

case "Import_Date_desc":
  var elems = $.makeArray($review_items);

  elems.sort(function(a, b) {
      var a_date = $(a).find('.panel-heading .data-source').text(),
          b_date = $(b).find('.panel-heading .data-source').text();

      a_date = a_date.split(' / ');
      a_date = a_date[1].split(' UTC');

      b_date = b_date.split(' / ');
      b_date = b_date[1].split(' UTC');

      console.log(a_date[0], b_date[0]);

      //return new Date(a_date[0]) < new Date(b_date[0]);
      return Date.parse(a_date[0]) < Date.parse(b_date[0]);
  });

  $review_container.html(elems);

  break;
案例“导入日期asc”:
var elems=$.makeArray($review\u items);
元素排序(函数(a,b){
var a_date=$(a).find('.panel heading.data source').text(),
b_date=$(b).find('.panel heading.data source').text();
a_date=a_date.split('/');
a_日期=a_日期[1]。拆分('UTC');
b_date=b_date.split('/');
b_日期=b_日期[1]。拆分('UTC');
日志(a_日期[0],b_日期[0]);
//返回新日期(a_日期[0])>新日期(b_日期[0]);
返回日期.parse(a_日期[0])>Date.parse(b_日期[0]);
});
$review_container.html(elems);
打破
案例“导入日期描述”:
var elems=$.makeArray($review\u items);
元素排序(函数(a,b){
var a_date=$(a).find('.panel heading.data source').text(),
b_date=$(b).find('.panel heading.data source').text();
a_date=a_date.split('/');
a_日期=a_日期[1]。拆分('UTC');
b_date=b_date.split('/');
b_日期=b_日期[1]。拆分('UTC');
日志(a_日期[0],b_日期[0]);
//返回新日期(a_日期[0])<新日期(b_日期[0]);
返回日期.parse(a_日期[0])
html如下所示:

<div class="review-item panel panel-primary" data-ldn="8643" data-pse="43460">
        <div class="panel-heading">
<span class="data-title">Dom(i23)</span>
<span class="data-source pull-right">Import / 2017-12-07 14:35 UTC</span>
</div></div>

Dom(i23)
Import/2017-12-07 14:35 UTC

如果您知道我在这里做错了什么,请联系我。

似乎解析无法转换您的日期。 但是,我相信使用localCompare会更好

case "Import_Date_asc":
    var elems = $.makeArray($review_items);

    elems.sort(function(a, b) {
        var a_date = $(a).find('.panel-heading .data-source').text(),
            b_date = $(b).find('.panel-heading .data-source').text();

        a_date = a_date.split(' / ');
        a_date = a_date[1].split(' UTC');
        a_date = a_date[0];
        a_date = a_date.replace('-', '');
        a_date = a_date.replace('-', '');
        a_date = a_date.replace(' ', '');
        a_date = a_date.replace(':', '');

        b_date = b_date.split(' / ');
        b_date = b_date[1].split(' UTC');
        b_date = b_date[0];
        b_date = b_date.replace('-', '');
        b_date = b_date.replace('-', '');
        b_date = b_date.replace(' ', '');
        b_date = b_date.replace(':', '');

        return a_date.localeCompare(b_date);
    });

    $review_container.html(elems);

    break;

case "Import_Date_desc":
  var elems = $.makeArray($review_items);

  elems.sort(function(a, b) {
      var a_date = $(a).find('.panel-heading .data-source').text(),
          b_date = $(b).find('.panel-heading .data-source').text();

      a_date = a_date.split(' / ');
      a_date = a_date[1].split(' UTC');
      a_date = a_date[0];
      a_date = a_date.replace('-', '');
      a_date = a_date.replace('-', '');
      a_date = a_date.replace(' ', '');
      a_date = a_date.replace(':', '');

      b_date = b_date.split(' / ');
      b_date = b_date[1].split(' UTC');
      b_date = b_date[0];
      b_date = b_date.replace('-', '');
      b_date = b_date.replace('-', '');
      b_date = b_date.replace(' ', '');
      b_date = b_date.replace(':', '');

      return a_date.localeCompare(b_date) * -1;
  });

  $review_container.html(elems);

  break;
试试这段代码,我相信它应该能工作。它对我的测试有效。
另外,请查看
[localeCompare()][1]
方法。

Yes@DirWolf该代码非常适合我。它解决了这个问题。干得好。!