Angular如何获取今日及昨日同时刻日期并格式化为dd/MM/yyyy HH:mm
日期变量创建与格式化解决方案
生成当前日期、昨日同一时刻日期
直接通过原生Date API实现,用setDate方法计算昨日日期,可自动处理跨月、跨年、夏令时等边界场景,代码示例:
// 获取当前日期 const currentDate: Date = new Date(); // 生成昨日同一时刻日期 const yesterdayDate: Date = new Date(currentDate); yesterdayDate.setDate(currentDate.getDate() - 1);
注意:不要直接通过
currentDate.getTime() - 24*60*60*1000的方式计算昨日,遇到夏令时调整日会出现时间偏差。
自定义日期格式化
如果需要转成指定格式(如yyyy-MM-dd HH:mm:ss),可以直接封装原生格式化方法,不需要依赖第三方或者老旧的管道方案:
function formatDate(date: Date, format: string = 'yyyy-MM-dd HH:mm:ss'): string { const year = date.getFullYear(); const month = String(date.getMonth() + 1).padStart(2, '0'); const day = String(date.getDate()).padStart(2, '0'); const hours = String(date.getHours()).padStart(2, '0'); const minutes = String(date.getMinutes()).padStart(2, '0'); const seconds = String(date.getSeconds()).padStart(2, '0'); return format.replace('yyyy', String(year)) .replace('MM', month) .replace('dd', day) .replace('HH', hours) .replace('mm', minutes) .replace('ss', seconds); } // 调用示例 console.log(formatDate(currentDate)); // 输出 2024-05-20 14:30:00 类格式 console.log(formatDate(yesterdayDate, 'yyyy/MM/dd')); // 输出 2024/05/19 类格式
如果需要适配更多格式位(比如星期、毫秒等),直接在函数内扩展对应的取值逻辑即可。
内容的提问来源于stack exchange,提问作者Videgain
相关产品推荐
相关产品推荐

