Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.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在特定时间内突出显示行_Javascript_Jquery - Fatal编程技术网

Javascript jQuery在特定时间内突出显示行

Javascript jQuery在特定时间内突出显示行,javascript,jquery,Javascript,Jquery,我试图突出显示一行,当它在特定的时间范围内。 实际上,假设现在是10:00:00,我需要标记这一行,如果时间介于开始日期和结束日期之间 下表: 标题 开始 终点 频道 标题1 2016-08-10 09:00:00+02 2016-08-10 11:00:00+02 第一频道 标题2 2016-08-10 09:30:00+02 2016-08-10 12:00:00+02 第三频道 标题4 2016-08-10 13:00:00+02 2016-08-10 15:00:00+02 第四频道

我试图突出显示一行,当它在特定的时间范围内。 实际上,假设现在是10:00:00,我需要标记这一行,如果时间介于开始日期和结束日期之间

下表:


标题
开始
终点
频道
标题1
2016-08-10 09:00:00+02
2016-08-10 11:00:00+02
第一频道
标题2
2016-08-10 09:30:00+02
2016-08-10 12:00:00+02
第三频道
标题4
2016-08-10 13:00:00+02
2016-08-10 15:00:00+02
第四频道
dateformat是我的postgresql数据库的输出。如果我能以我们当地时间的格式(10.08.2016-14:15:12)展示它们就太好了,但这不是我这里的主要问题

要突出显示的我的(仅完成一半)js代码:


$('#timeline.dateRowStart')。每个(函数(){
var dtTd=新日期($(this.html());
var dtNew=新日期();
if(dtNew.getTime()
我不知道如何包括
dateRowEnd
来检查日期是否仍在开始/结束时间之间。如果我使用两个相同的时间/日期和日期格式,例如“08/10/2016 10:05:00”,我只标记了一行,这是另一件恼人的事情


谢谢大家!

您可以向
标记本身添加一个类,然后执行以下操作:

HTML:


标题1
2016-08-10 09:00:00+02
2016-08-10 11:00:00+02
第一频道
...
jQuery:

$('#timeTable').find('.dateRow').each(function () {
  var dtStart = new Date($(this).find(".dateRowStart").text());
  var dtEnd = new Date($(this).find(".dateRowEnd").text());
  var dtNew = new Date();
  if (dtNew >= dtStart && dtNew <= dtEnd) {
    $(this).addClass('highlight');
  } 
});
$(“#时间表”).find(“.dateRow”).each(函数(){
var dtStart=new Date($(this).find(“.dateRowStart”).text();
var dtEnd=新日期($(this).find(“.dateRowEnd”).text());
var dtNew=新日期();

如果(dtNew>=dtStart&&dtNew您可以向
标记本身添加一个类,然后执行以下操作:

HTML:


标题1
2016-08-10 09:00:00+02
2016-08-10 11:00:00+02
第一频道
...
jQuery:

$('#timeTable').find('.dateRow').each(function () {
  var dtStart = new Date($(this).find(".dateRowStart").text());
  var dtEnd = new Date($(this).find(".dateRowEnd").text());
  var dtNew = new Date();
  if (dtNew >= dtStart && dtNew <= dtEnd) {
    $(this).addClass('highlight');
  } 
});
$(“#时间表”).find(“.dateRow”).each(函数(){
var dtStart=new Date($(this).find(“.dateRowStart”).text();
var dtEnd=新日期($(this).find(“.dateRowEnd”).text());
var dtNew=新日期();
如果(dtNew>=dtStart&&dtNew检查此代码段:

$(函数(){
$('#timeline.dateRowStart')。每个(函数(){
var dtTdStart=新日期($(this).text());
var dtTdEnd=new Date($($(this.this).sillides('.dateRowEnd')).text();
var dtNew=新日期();
如果(dtNew>dtTdStart&&dtNew
。突出显示{
颜色:红色;
}

标题
开始
终点
频道
标题1
2016-08-11 17:00:00+02
2016-08-11 19:00:00+02
第一频道
标题2
2016-08-11 17:30:00+02
2016-08-11 18:00:00+02
第三频道
标题4
2016-08-11 13:00:00+02
2016-08-11 15:00:00+02
第四频道
检查此代码段:

$(函数(){
$('#timeline.dateRowStart')。每个(函数(){
var dtTdStart=新日期($(this).text());
var dtTdEnd=new Date($($(this.this).sillides('.dateRowEnd')).text();
var dtNew=新日期();
如果(dtNew>dtTdStart&&dtNew
。突出显示{
颜色:红色;
}

标题
开始
终点
频道
标题1
2016-08-11 17:00:00+02
2016-08-11 19:00:00+02
第一频道
标题2
2016-08-11 17:30:00+02
2016-08-11 18:00:00+02
第三频道
标题4
2016-08-11 13:00:00+02
2016-08-11 15:00:00+02
第四频道
您可以使用--

代码笔--

您还可以使用
时刻('orig date')更改日期格式。格式('MM/DD/YY HH:MM:ss')

您可以使用--

代码笔--


您也可以使用
时刻('orig date')更改日期格式。格式('MM/DD/YY HH:MM:ss')

您只是对时间感兴趣,还是对提供的特定日期的时间感兴趣?嗯,我不明白您的问题:)我需要突出显示这一行,当Starttime为=current time时,我的观点是,在您的示例中日期不同。今天是8月11日,您的日期是10日。我仍然不确定您想要实现什么,但希望这会有所帮助。请注意,我修改了最后一个日期,以便在本地时区工作:@bingobear在这种情况下,我的小提琴是你对时间感兴趣,还是对提供的具体日期感兴趣?嗯,我不明白你的问题:)我需要突出显示这一行,当Starttime为=current time时,我的观点是,在您的示例中日期不同。今天是8月11日,您的日期是10日。我仍然不确定您想要实现什么,但希望这会有所帮助。请注意,我修改了最后一个日期,以便在本地时区工作:@bingobear在这种情况下,我的小提琴是示例将对您起作用。如果时间已过,但仍在页面上,请查看如何删除突出显示。并将
$(此)
传递到函数中,以便您可以引用它来调用
。removeClass('highlight')
.text()
可能比
.html()更好
但是它是一个tossup-而且那是
[0]。
也许是不需要的?测试它…@markschulthis很好,我没有意识到
.text()
从它返回的字符串中过滤出html。我还没有测试
[0]
然而,我假设,因为我正在为类选择,所以它将作为数组返回。
未捕获类型错误:$(…).find(…)[0]。文本不是函数
-如果需要,请在此处使用
.eq(0)
$('#timeTable .dateRow').each(function () {
  var startTime = $(this).closest("tr").find(".dateRowStart") .text();
  var endTime = $(this).closest("tr").find(".dateRowEnd").text();
  if (moment().isBetween(startTime, endTime)) {
      $(this).addClass('highlight'); 
  } 
});