如何使用javascript隐藏过去的时间?

如何使用javascript隐藏过去的时间?,javascript,jquery,html,Javascript,Jquery,Html,我有一个按钮的名字今天当我点击,不应该有显示过去的时间 我该怎么做 我的代码: $('.today')。单击(函数(){ $('.custom_time li')。每个(函数(){ $(this.hide(); }); }); 今天 上午10:00 上午11:00 下午12:00 下午1:00 下午二时 下午3:00 下午四时 下午五时 下午六时 晚上7:00 您需要获取当前小时数,并将其与每个时间数字进行比较,您还需要检查“pm/am”时段的小时

我有一个按钮的名字今天当我点击,不应该有显示过去的时间

我该怎么做

我的代码:

$('.today')。单击(函数(){
$('.custom_time li')。每个(函数(){
$(this.hide();
});
});

今天
  • 上午10:00
  • 上午11:00
  • 下午12:00
  • 下午1:00
  • 下午二时
  • 下午3:00
  • 下午四时
  • 下午五时
  • 下午六时
  • 晚上7:00

您需要获取当前小时数,并将其与每个时间数字进行比较,您还需要检查“pm/am”时段的小时数,如:

$('.today')。单击(函数(){
变量小时,周期;
var current_hour=新日期().getHours();
$('.custom_time li')。每个(函数(){
句号=$(“小的”,这个).text()==“pm”?12:0;
hour=parseInt($(“.timeNumeric”,this).text().split(“:”)[0])+句点;
如果(小时尝试过滤器

注:我使用将am/pm转换为24小时

constpad=(num)=>(“0”+num).slice(-2);
const convertTime12to24=(time12h)=>{const[time,modifier]=time12h.split(“”);let[hours,minutes]=time.split(“:”);if(hours=='12')hours='00';if(modifier.toUpperCase()=='PM')hours=parseInt(hours,10)+12;返回“${pad(hours)}:${pad(minutes)};”
常量padTime=(d)=>`${pad(d.getHours())}:${pad(d.getMinutes())}`;
$('.today')。在(“单击”,()=>{
const now=padTime(新日期());
$('#output').text(`Filtering on${now}`)
$('.custom_time li')。过滤器((_,elm)=>{
const$t=$(elm.find('.timeNumeric');
const text=convertTime12到24($t.text()++++$t.next().text());

return text您可以这样做……我认为这段代码可以改进很多,但嘿,这是一个开始

$('.today')。单击(函数(){
$('.custom_time li')。每个(函数(){
var hour=$(this.find('.timeNumeric').html();
小时=小时。拆分(“:”)[0];
小时=parseInt(小时);
var isMorning=$(this.find('small').html();
如果(!isMorning&&hour!=12)小时+=12;
var currentDate=新日期();

如果(小时我建议你做的是,随机选择一个日期(没有时间部分)

现在为该日期设置当前日期的
分钟
小时

现在用
li
中提到的时间创建一个日期(日期部分与上面相同),并将它们与简单的
进行比较,您应该能够得到您想要的

$('.today')。单击(函数(){
var d=新日期();
var今日=新日期(“1993年11月24日”);
today.setHours(d.getHours());
today.setMinutes(d.getMinutes());
today.setSeconds(d.getSeconds());
$('.custom_time li')。每个(函数(){
var tempDate=新日期(“1993年11月24日”+$(this.text());
如果(临时日期<今天)
$(this.hide())
});
});

今天
  • 上午10:00
  • 上午11:00
  • 下午12:00
  • 下午1:00
  • 下午二时
  • 下午3:00
  • 下午四时
  • 下午五时
  • 下午六时
  • 晚上7:00

你的代码似乎已经在做你想做的事情。有什么问题吗?@glhr看看他当前的代码,里面没有逻辑,他只是隐藏了一切当我点击“今天”按钮时,所有时间都在隐藏,但我只想按照当前时间隐藏过去的时间。你的意思是只隐藏比当前时间少的时间吗?@George Bailey Yesse下午3点,4点,5点,6点怎么样?我想是的。中午12点不到下午3点不?它不应该也隐藏中午12点吗?就像这里是下午2点56分吗?有中午12点也应该隐藏,因为它比现在的时间短啊,我错过了上午/下午谢谢@Zakaria Acharki现在它工作正常正是我们想要的。谢谢中午12点也应该隐藏,因为它小于当前时间,无需每次创建日期。只要字符串HH:MM(带或不带am/pm)就足够了,因为它排序正确。我不知道。谢谢:)