gpt4 book ai didi

javascript - 如何按月、日和年对
  • 进行排序
  • 转载 作者:行者123 更新时间:2023-12-02 21:38:52 25 4
    gpt4 key购买 nike

    我需要一些帮助对以下列表进行排序,我已经做了一些研究,尝试使用 JavaScript 进行以下操作,但它不能作为我的日期格式2020 年 1 月 20 日

    代码:

    (function($) {
    var container = $(".sort-list");
    var items = $(".sort-item");

    items.each(function() {
    // Convert the string in 'data-event-date' attribute to a more
    // standardized date format
    var BCDate = $(this).attr("data-event-date").split("-");
    var standardDate = BCDate[1] + " " + BCDate[0] + " " + BCDate[2];
    standardDate = new Date(standardDate).getTime();
    $(this).attr("data-event-date", standardDate);

    });

    items.sort(function(a, b) {
    a = parseFloat($(a).attr("data-event-date"));
    b = parseFloat($(b).attr("data-event-date"));
    return a > b ? -1 : a < b ? 1 : 0;
    }).each(function() {
    container.prepend(this);
    });

    })(jQuery);
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <ul class="sort-list">
    <li class="sort-item" data-event-date="August 21 2020">August 21 2020</li>
    <li class="sort-item" data-event-date="April 25 2020">April 25 2020</li>
    <li class="sort-item" data-event-date="May 25 2020">May 25 2020</li>
    <li class="sort-item" data-event-date="September 25 2020">September 25 2020</li>
    <li class="sort-item" data-event-date="May 13 2020">May 13 2020</li>
    <li class="sort-item" data-event-date="June 1 2020">June 1 2020</li>
    <li class="sort-item" data-event-date="December 4 2020">December 4 2020</li>
    </ul>

    最佳答案

    您正在尝试使用 parseFloat,为什么不使用 new Date()
    然后您可以简单地比较日期,见下文

    我删除了第一个 items.each 因为我不明白它对于这里问题的实用性。

    (function($) {
    var container = $(".sort-list");
    var items = $(".sort-item");

    items.sort(function(a, b) {
    let d1 = new Date($(a).data("event-date"));
    let d2 = new Date($(b).data("event-date"));
    return d1 > d2 ? -1 : d1 < d2 ? 1 : 0;
    }).each(function() {
    container.prepend(this);
    });
    })(jQuery);
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <ul class="sort-list">
    <li class="sort-item" data-event-date="August 21 2020">August 21 2020</li>
    <li class="sort-item" data-event-date="April 25 2020">April 25 2020</li>
    <li class="sort-item" data-event-date="May 25 2020">May 25 2020</li>
    <li class="sort-item" data-event-date="September 25 2020">September 25 2020</li>
    <li class="sort-item" data-event-date="May 13 2020">May 13 2020</li>
    <li class="sort-item" data-event-date="June 1 2020">June 1 2020</li>
    <li class="sort-item" data-event-date="December 4 2020">December 4 2020</li>
    </ul>

    但是,正如评论和另一个答案中所建议的那样,最好将字符串(例如“2020 年 8 月 21 日”)转换为简化的日期格式(例如“2020-08-21”),然后再进行转换到一个真正的日期你会更有一致性

    关于javascript - 如何按月、日和年对 <li> 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60420935/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com