【发布时间】:2020-11-11 19:18:29
【问题描述】:
我正在为一个广播节目制定时间表,我需要显示当前正在直播的节目。 目前它从开始时间开始工作,但在结束时间之后仍显示“实时”。
这张截图是在上午 10 点 12 分拍摄的
我正在使用date-fns 库。
调度数据形状如下。
"shows": [
{
"artist": "Set & Setting ",
"starts_at": "2020-06-29T07:00:00.000Z",
"ends_at": "2020-06-29T08:00:00.000Z",
"description": "w/ JD"
},
{
"artist": "Set & Setting ",
"starts_at": "2020-06-29T08:00:00.000Z",
"ends_at": "2020-06-29T09:00:00.000Z",
"description": "w/ JD"
},
{
"artist": "The Great Stuff",
"starts_at": "2020-07-16T21:00:00.000Z",
"ends_at": "2020-07-16T13:00:00.000Z",
"description": "w/ ??"
},
{
"artist": "The Melting Pot ",
"starts_at": "2020-07-16T17:00:00.000Z",
"ends_at": "2020-07-16T19:00:00.000Z",
"description": "w/ Tom B"
}
]
我判断迭代中的当前项目是否处于活动状态的逻辑是
...
import { startOfToday, parseISO, getHours, getMinutes, sub } from "date-fns"
...
const now = new Date();
const { starts_at, ends_at } = item;
const liveNow = (
(getHours(now) >= getHours(parseISO(starts_at)) && getMinutes(now) >= getMinutes(parseISO(starts_at))) &&
(getHours(now) <= getHours(parseISO(ends_at)) && getMinutes(now) <= getMinutes(sub(parseISO(ends_at), { minutes: 1 })))
);
【问题讨论】:
标签: javascript date date-fns