React中使用setHours方法未输出预期值,为何得到时间戳?
问题解答:setHours返回时间戳而非预期小时数
你遇到的问题核心是对setHours()方法的返回值理解有误:
setHours()的作用是修改Date对象的小时数值,但它不会返回修改后的小时数,而是返回修改后的日期对应的UTC时间戳(从1970年1月1日00:00:00 UTC到该日期的毫秒数),这就是你看到1667813785897这类长数字的原因。
要得到预期的小时数,需要先修改Date对象,再通过getHours()方法提取小时值,修正后的代码如下:
function App() { // 先创建Date实例 let currDate = new Date(); // 修改小时数(此时currDate的小时已更新为15) currDate.setHours(15); // 获取修改后的小时数 let currHour = currDate.getHours(); return ( <div> <h1>{currHour}</h1> </div> ); }
如果想简化写法,也可以这样写:
function App() { let currHour = new Date(new Date().setHours(15)).getHours(); return ( <div> <h1>{currHour}</h1> </div> ); }
内容的提问来源于stack exchange,提问作者user11409898
相关产品推荐
相关产品推荐

