gpt4 book ai didi

javascript - 使用 JavaScript 对某些日期进行排序

转载 作者:行者123 更新时间:2023-12-03 12:04:01 25 4
gpt4 key购买 nike

我有一个 WordPress 插件“Ultimate WPQSF”,它在我的网站前端输出一个下拉列表,但据我所知,我无法选择按日期排序此列表。

在前端输出以下下拉列表

<select id="tdp-0" name="taxo[0][term]">
<option value="august-2013">August 2013</option>
<option value="august-2014">August 2014</option>
<option value="december-2013">December 2013</option>
<option value="march_2014">March 2014</option>
<option value="may-2014">May 2014</option>
</select>

我想要做的是从这些选项中提取数据,并按日期排序,然后将其输入回新顺序的选择中,即首先是最新日期(2014 年 8 月)。处理后期望的结果如下

<select id="tdp-0" name="taxo[0][term]">
<option value="august-2014">August 2014</option>
<option value="may-2014">May 2014</option>
<option value="march_2014">March 2014</option>
<option value="december-2013">December 2013</option>
<option value="august-2013">August 2013</option>
</select>

我了解一点 jQuery 和 JavaScript,但还不足以完成如此​​高级的事情。任何建议将不胜感激。

最佳答案

不知道march_2014是否是一个拼写错误,如果不是,你必须修改代码来处理 - 和 _

JSFiddle:http://jsfiddle.net/6xde9500/

//For adding capitalaizing the first letter-function to strings
String.prototype.capitalize = function() {
return this.charAt(0).toUpperCase() + this.slice(1);
}

myMonths = ["january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december"];

//Array that hold date objects
dateArray = new Array();

//Create date objects
function getDateObject(value){

montAndYear = value.split("-");

date = new Date();

//Set year and month
date.setYear(montAndYear[1]);

//Since the months are stored by name, get the proper value from the myMoths array
date.setMonth(myMonths.indexOf(montAndYear[0]));

return date;
}

function updateSelection(){
$("#tdp-0")
.find('option')
.remove()
.end();

for(i = 0; i < dateArray.length; i++){

month = myMonths[dateArray[i].getMonth()];
year = dateArray[i].getFullYear();

$("#tdp-0").append('<option value="'+month+'-'+year+'">'+ month.capitalize() + ' ' + year +'</option>');

if(i == 0){
$("#tdp-0").val(month+'-'+year);
}
}
}

//Get all the values and sorts them
$("#tdp-0 option").each(function(){
dateArray.push(getDateObject($(this).val()));
}).promise().done(function(){

dateArray.sort(function(a,b){
return a>b ? -1 : a<b ? 1 : 0;
});

updateSelection();
});

关于javascript - 使用 JavaScript 对某些日期进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25268057/

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