React.js项目中如何按指定格式显示昨日日期?
解决React.js中昨日日期展示的TypeError问题
出现Uncaught TypeError: yesterday.toLocaleDateString is not a function错误,本质是你定义的yesterday不是合法的Date对象——大概率是创建昨日日期时直接对Date实例做了减法运算,得到的是时间戳(数字类型),而数字没有toLocaleDateString方法。
以下是正确的实现方案,可直接生成「6 June、5 June」格式的日期:
正确创建昨日日期对象
基于今日的Date对象复制一份,再通过setDate方法将日期减1,这样得到的仍是合法的Date实例:const today = new Date(); const yesterday = new Date(today); yesterday.setDate(today.getDate() - 1);格式化日期为指定格式
使用toLocaleDateString方法,传入'en-GB'语言标识和格式化配置,即可得到「数字 + 英文月份全称」的格式:const formatDate = (date) => { return date.toLocaleDateString('en-GB', { day: 'numeric', month: 'long' }); };完整React组件示例
import React from 'react'; const DateComponent = () => { const today = new Date(); const yesterday = new Date(today); yesterday.setDate(today.getDate() - 1); const formatDate = (date) => { return date.toLocaleDateString('en-GB', { day: 'numeric', month: 'long' }); }; return ( <div> <span>{formatDate(today)}、{formatDate(yesterday)}</span> </div> ); }; export default DateComponent;
注意事项
- 避免直接对
Date实例做减法(比如const yesterday = new Date() - 86400000),这种写法会得到数字类型的时间戳,无法调用Date对象的方法。 setDate方法会自动处理跨月/跨年的边界情况(比如1月1日的前一天会自动转为去年12月31日),无需额外编写逻辑处理。
内容的提问来源于stack exchange,提问作者Александр
相关产品推荐
相关产品推荐

