【问题标题】:How to extend the Date class如何扩展 Date 类
【发布时间】:2017-03-31 17:00:45
【问题描述】:

我正在制作一个 angular2 应用程序,我从控制器返回的所有日期都是这种格式 “2017-02-2700:00:00”。我想扩展 js Date 对象,以便在创建新对象时从字符串中删除 T 并且它仍然充当日期对象。我试图实现这一目标的当前方式行不通。我创建的扩展 Date 对象的 IDate 对象只是显示为空对象而不是日期对象。任何人都知道发生了什么以及如何解决它。如果不能在 typescript 中完成,我愿意使用 es6 js 代替 typescript。我看到post 关于扩展 Date 对象,但它修改了 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)

【问题讨论】:

标签: javascript angular date typescript


【解决方案1】:

如果您以 es6 为目标,则只能以这种方式扩展本机(内置)类型。
如果您无法定位 es6,那么您需要解决它:Extending built-ins like Error, Array, and Map may no longer work

更多信息:

虽然并非所有这些都在谈论扩展Date,但问题仍然完全相同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-21
    • 1970-01-01
    • 2020-06-22
    • 1970-01-01
    • 2013-03-30
    • 2016-05-17
    相关资源
    最近更新 更多