javascript - 如何扩展 Date 类

标签 javascript angular date typescript

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

最佳答案

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

更多信息:

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

关于javascript - 如何扩展 Date 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43146068/

相关文章:

javascript - $ ("#but0_0").attr(...) 有效,但 $(hid).attr(...) 当 hid === "#but0_0"时不起作用

unit-testing - TestBed configureTestingModule 在一个模块中定义所有 spec.ts 通用的导入、声明、提供程序和管道 - 模式

date - 奇怪的Logstash日期解析错误

php - 使用 PHP 从 MySQL 打印两个日期之间的 Y-m-d 业务日期列表

javascript - 添加/减去当前时间的时间段(Javascript)

javascript - 我如何知道哪个元素被点击?

javascript - requirejs:从网络服务加载脚本/模块

javascript - 用 Selenium 刮4

node.js - Angular如何显示json对象的实时值

javascript - Angular 7 - 上传多个文件以及数据和报告进度