JavaScript调用setHours()返回异常日期值如何转换为标准可读格式
核心原因
setHours() 是JavaScript Date对象的内置可变方法,它会直接修改原Date对象的小时值,返回值不是修改后的Date对象,而是修改后时间对应的毫秒级Unix时间戳(数字类型),因此直接打印返回值会输出数字,不是格式异常。
解决方案
要得到和第一个console.log(date)格式一致的日期输出,两种常用方式:
- 方式一:直接打印修改后的原Date对象
setHours本身已经修改了原date变量的值,不需要处理返回值,直接打印修改后的date即可:
const date = new Date() console.log(date) date.setHours(5) console.log(date)
- 方式二:将返回的时间戳转换为Date对象
如果你的业务场景需要接收setHours的返回值,把时间戳传入new Date()构造函数即可转为标准Date对象:
const date = new Date() console.log(date) const modifiedTimestamp = date.setHours(5) console.log(new Date(modifiedTimestamp))
如果需要自定义日期输出格式,还可以搭配toLocaleString()、toISOString()、toDateString()等Date内置方法按需调整输出效果。
内容的提问来源于stack exchange,提问作者NMITIMEN
相关产品推荐
相关产品推荐

