星空2020 2023-10-29 21:12 采纳率: 64.1%
浏览 17
已结题

js做时间判断的完整写法

判断当前时间是00:00:00到08:30:00之间时,则将开始时间设置为昨天的20:30;
判断当前时间是08:30:01到20:30:59之间是,则将开始时间设置今天的08:30;
判断当前时间是20:30:01到23:59:59之间时,则将开始时间设置今天的20:30;
如下写法,验证发现当前时间大于20:01时,就将开始时间置为20:30了, 即20:01到20:30没有生效。

 const now = new Date();
// 获取当前时间的小时、分钟和秒数
const hours = now.getHours();
const minutes = now.getMinutes();
const seconds = now.getSeconds();
let startDate = new Date(); // 设置开始时间
// 判断时间范围并设置开始时间
if (hours >= 0 && hours < 8 || (hours === 8 && minutes < 30) ) {
  startDate.setDate(now.getDate() - 1); // 前一天的日期
  startDate.setHours(20);
  startDate.setMinutes(30);
  startDate.setSeconds(0);
} else if (hours >= 8 && hours < 20 || (hours === 8 && minutes === 30) ) {
  startDate.setHours(8);
  startDate.setMinutes(30);
  startDate.setSeconds(0);
} else if (hours >= 20 || (hours === 20 && minutes >= 30)) {
  startDate.setHours(20);
  startDate.setMinutes(30);
  startDate.setSeconds(0);
}
var startTime = startDate;
    //var endTime = now;
var endTime = new Date(startDate.getTime() + 12 * 60 * 60 * 1000); 

  • 写回答

2条回答 默认 最新

  • IT•轩辕 2023-10-30 00:13
    关注
    • 楼主题目描述有问题:下面2个需求 有时间交集:20:30:01~20:30:59,到底怎么回事?
      判断当前时间是08:30:01到20:30:59之间是,则将开始时间设置今天的08:30;
      判断当前时间是20:30:01到23:59:59之间时,则将开始时间设置今天的20:30;
    • 代码混乱,第13,17行,大于等于8(或大于等于20)直接短路了后面的计算(建议等号去掉)
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月12日
  • 已采纳回答 12月4日
  • 创建了问题 10月29日