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

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日

悬赏问题

  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 易优eyoucms关于二级栏目调用的问题
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题