You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular中Date类型赋值报错:如何格式化日期为yyyy-MM-dd hh:mm

解决方案

核心问题原因

formatDate方法返回的是字符串类型,但你的obj.created_date被定义为Date类型,TypeScript的类型校验规则不允许将字符串赋值给Date类型变量,这就是报错type 'string' is not assignable to type 'date'的原因。而直接在formatDate前加new Date(),会把格式化后的字符串重新解析为Date对象,自然无法得到你想要的字符串格式。

推荐方案:新增字符串属性存储格式化结果

最规范的做法是保留created_date的Date类型(用于日期计算、后续逻辑处理),新增一个字符串类型的属性来存储格式化后的展示值:

// 给obj补充类型定义,新增格式化日期属性
interface YourObject {
  created_date: Date;
  formattedCreatedDate?: string;
  // 其他属性...
}

// 将格式化后的字符串赋值到新属性
obj.formattedCreatedDate = formatDate(obj.created_date, 'yyyy-MM-dd hh:mm', 'en-US');

备选方案:修改原属性类型(不推荐)

如果一定要复用created_date属性存储格式化后的字符串,需要修改它的类型为Date | string,但这种方式会混淆日期对象和字符串的用途,后续处理容易引发类型相关问题:

// 修改类型定义
interface YourObject {
  created_date: Date | string;
  // 其他属性...
}

// 直接赋值格式化后的字符串(需类型断言确保编译通过)
obj.created_date = formatDate(obj.created_date as Date, 'yyyy-MM-dd hh:mm', 'en-US');

内容的提问来源于stack exchange,提问作者Niladri Banerjee - Uttarpara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 14:01:01