【问题标题】:Calendar on Angular 2 using PrimeNG date in millisecondsAngular 2 上的日历使用 PrimeNG 日期(以毫秒为单位)
【发布时间】:2017-03-20 19:57:33
【问题描述】:

我在 PrimeNG 的日历组件中有以毫秒为单位的时间

HTML

<p-calendar [(ngModel)]="task.startDate"
    [minDate]="minDateValue"
    [maxDate]="maxDateValue"
    readonlyInput="readonlyInput"
    [showIcon]="true">
</p-calendar>

TypeScript

"startDate":1490039621704,

但是我得到了以下错误

EXCEPTION: Uncaught (in promise): TypeError: date.getMonth is not a function
TypeError: date.getMonth is not a function

有没有办法告诉组件以特定格式读取日期,比如我的情况是毫秒

更新

根据文档here,以毫秒为单位的日期格式应为 @ - Unix 时间戳(自 1970 年 1 月 1 日起为毫秒) 所以我在组件中添加了属性dateFormat="@",但似乎没有修复它。

【问题讨论】:

    标签: angular typescript datepicker primeng


    【解决方案1】:

    根据错误,它需要 Date Object

    试试:

    date = new Date(task.startDate);
    

    基于 OP 更新的可能性。

    错误可能发生在服务器响应 task.startDate 值之前。如果是这种情况,在组件级别将 task.startDate 初始化为 0 可能会解决此问题。

    export class AppComponent {
    
        task = { startDate: 0 };
    
        ...
    
    }
    

    【讨论】:

    • 开始日期实际上是来自服务器的响应我没有在 ts 中做任何事情
    • 我稍后会更新 oode 以显示我的实际代码,但我没有在 ts 上做任何事情(希望不必这样做),因为它是我从中获取的对象数组服务器,我在 html 表上使用 *ngFor 循环来显示可编辑的 timepicker 网格,实际上我也尝试使用 ng2-bootstrap datepicker ,但似乎他们的 datepicker 只能内联工作,没有弹出选项
    猜你喜欢
    • 1970-01-01
    • 2019-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-27
    • 1970-01-01
    • 2011-09-03
    • 1970-01-01
    相关资源
    最近更新 更多