Node.js时间操作疑问:日期加一天及秒级日期过期判断
Node.js 时间操作问题解答
1. 当前日期加一天的代码说明
你这段加一天的代码是完全可行的,setDate() 方法会修改原 Date 对象并返回对应的时间戳,你通过时间戳重新创建 Date 对象的方式没问题。不过可以简化写法,因为原对象已经被修改,不需要额外创建新对象:
const date = new Date(); date.setDate(date.getDate() + 1); console.log(date.toLocaleString());
两种写法效果一致,选你习惯的就行。
2. 精确到秒的日期过期判断
你找到的这段代码逻辑是正确的,但它默认是精确到毫秒的比较(因为 Date.now() 和 getTime() 返回的都是毫秒级时间戳)。如果要严格精确到秒(忽略毫秒差异),需要把时间戳转换为秒级后再比较:
// 建议给定日期时明确时分秒,否则默认是当天00:00:00 const givenDate = new Date('June 7, 2022 14:30:00'); // 转换为秒级时间戳(取整忽略毫秒) const nowSeconds = Math.floor(Date.now() / 1000); const givenSeconds = Math.floor(givenDate.getTime() / 1000); if (nowSeconds > givenSeconds) { console.log('该日期已过期'); } else { console.log('该日期未过期'); }
如果你的业务需求只需要精确到秒,这种处理可以避免因为毫秒差异导致的误判。另外要注意:如果给定的日期字符串没有包含时分秒,new Date() 会自动把时间部分设为当天的 00:00:00,需要根据实际需求确认日期参数是否完整。
内容的提问来源于stack exchange,提问作者user21339222
相关产品推荐
相关产品推荐

