【问题标题】:jQuery/JS order list by date string in file namejQuery/JS 按文件名中的日期字符串排序列表
【发布时间】:2026-02-13 02:30:01
【问题描述】:

我有一个文件列表,这些文件会自动从文件夹中抓取并按字母顺序显示在页面上:

例如

  • 文件名2015-11-01.pdf
  • B文件名2016-01-01.pdf
  • C文件名2015-12-01.pdf

我想使用文件名的日期部分对它们进行排序,所以它们是这样的:

  • B文件名2016-01-01.pdf
  • C文件名2015-12-01.pdf
  • 文件名2015-11-01.pdf

HTML

<div class="wpdf_files_list_container">
<ul class="wpdf-list-style">
    <li class="clearfix active_alternative">
        <div class="row_filename">
        <p class="wpdf_file_name"><span class="wpdf_document_icon"><img src="document.png" class="img-responsive" data-lazy-loaded="true" style="display: block;"><img src ="document.png"></span>A File Name 2015-11-01.pdf</p>
        </div>
        <div class="row_downloadbutton"><a class="pdf btn btn-xs btn-primary" href="A File Name 2015-11-01.pdf" target="_blank">Download</a></div>
    </li>
    <li class="clearfix deactive_alternative">
        <div class="row_filename">
        <p class="wpdf_file_name"><span class="wpdf_document_icon"><img src="document.png" class="img-responsive" data-lazy-loaded="true" style="display: block;"><img src ="document.png"></span>B File Name 2016-01-01.pdf</p>
        </div>
        <div class="row_downloadbutton"><a class="pdf btn btn-xs btn-primary" href="B File Name 2016-01-01.pdf" target="_blank">Download</a></div>  
    </li>
    <li class="clearfix active_alternative">
        <div class="row_filename">
        <p class="wpdf_file_name"><span class="wpdf_document_icon"><img src="document.png" class="img-responsive" data-lazy-loaded="true" style="display: block;"><img src ="document.png"></span>C File Name 2015-12-01.pdf</p>
        </div>
        <div class="row_downloadbutton"><a class="pdf btn btn-xs btn-primary" href="C File Name 2015-12-01.pdf" target="_blank">Download</a></div>      
    </li>

    ...
</ul>
</div>

谁有一个例子,不知道从哪里开始?

【问题讨论】:

  • 请显示您的实际 HTML。在不知道 什么我们正在排序的情况下,我们无法向您展示如何排序
  • 你已经尝试过了吗?
  • 请阅读How to Ask。关键词:“搜索和研究”和“解释......任何阻碍你自己解决的困难”。

标签: javascript jquery string sorting date


【解决方案1】:

这是获取排序文件名的代码。我假设你可以继续相应地安排 html

因为yyyy-mm-dd 字符串既是ASCII checksumchronologically,顺序相同,只需比较字符串世界就足够了。不需要日期解析。

var sortedFilenames = filenames.sort(function(filename1, filename2) {
  return filename2) - filename1;
});

【讨论】:

  • 由于日期是年-月-日格式,不需要转换为日期或数字;它们将作为字符串正确排序。
  • 啊@MikeMcCaughan 有道理