我正在制作angular2应用程序,我从控制器返回的所有日期都采用 “2017-02-2700:00:00” 格式。我想扩展js Date对象,以便当我创建一个新对象时它从字符串中删除T并且它仍然充当日期对象。我试图实现这一目前的方式是行不通的。我做的扩展Date对象的IDate对象只是显示为空对象而不是日期对象。任何人都知道发生了什么以及如何解决它。如果不能在打字稿中完成,我愿意使用es6 js代替打字稿。我看到post关于扩展Date对象,但是修改了日期对象,我希望我自己的对象名为IDate,与Date相同,但有更多方法。如果这是可以做到的唯一方法,我会给出答案。
export class IDate extends Date {
constructor() {
super();
}
value;
toDate(value: string): Date {
value.replace("T", " ");
return new Date(value);
}
getvalue() {
return this.value;
}
}
let t = new IDate();
let d = new Date();
console.log(t);
console.log(d);
控制台
IDate {}
Fri Mar 31 2017 11:53:59 GMT-0500 (Central Daylight Time)
答案 0 :(得分:1)
如果您定位es6
,则只能以这种方式扩展原生(内置)类型
如果您无法定位es6
,那么您需要解决它:Extending built-ins like Error, Array, and Map may no longer work。
有关此内容的更多信息:
虽然并非所有这些都谈到扩展Date
,但问题仍然完全相同。