如何将今天的日期和时间显示为上午 9 点并持续到第二天?



我正在做一个react项目。我想把今天的日期和时间显示为"上午9点"。这必须保持不变,直到第二天上午9点。之后,它应该显示时间为上午9点以及当天的日期,并继续这样直到第二天上午9点,依此类推。

<span>Last Updated: {moment().format('MMMM Do YYYY,') + " 9:00 am"}</span>

上面的代码显示时间为上午9点,甚至在第二天的时间是上午9点之前。它应该看起来像当前时间和日期只在每天上午9点更新。

这段代码创建了一个函数,用于检索给定时间的格式化日期。如果未指定小时,则使用当前小时。它将返回今天的日期,除非时间在9点之前,在这种情况下,它将返回昨天的日期。该格式将使用当前用户的本机格式,用于"long"日期。HTML显示所需的结果,控制台记录当天9点之前发生的事情和当前小时。小时由用户所在的时区确定。

function getDateAtNine(forceHour) {
let now = new Date();
const hour = forceHour == null ? now.getHours() : forceHour;
if (hour < 9) {
now = new Date(now.getFullYear(), now.getMonth(), now.getDate() - 1);
}
return new Intl.DateTimeFormat(undefined, {
dateStyle: 'long'
}).format(now);
}
console.log(getDateAtNine(8)); // shows what will print at 8 am on today's date
console.log(getDateAtNine()); // shows what will print at the current hour on today's date
document.querySelector('#dateat9').textContent = getDateAtNine();
<span id="dateat9"></span><span id="nineam">,&nbsp;9:00 am</span>

这是你想要的吗?;)

const getLastStartOfDay = (startOfDayHour) => {
let todayStartOfDay = new Date();
todayStartOfDay.setHours(startOfDayHour, 0, 0, 0);
let yesterdayStartOfDay = new Date(todayStartOfDay);
yesterdayStartOfDay.setDate(yesterdayStartOfDay.getDate() - 1);
let dt = new Date();
const displayDate =
dt.getHours() < startOfDayHour ? yesterdayStartOfDay : todayStartOfDay;
return displayDate;
};
console.log("LastStartOfDay: ", getLastStartOfDay(9));

相关内容

  • 没有找到相关文章