角度不正常的日期管道

时间:2018-01-31 01:15:19

标签: angular

角度中的日期管道应该像文档中所述的那样工作:https://angular.io/api/common/DatePipe。但是,当我运行Today's date is {{myDate| date:'fullDate'}}时,它正在打印今天的日期是2014年1月30日。这就是它,没时间,没有时区。任何人都经历过这种情况,并找到了一种让它以预期的方式工作的方法吗?

编辑:无论我设定的日期是什么,它都会打印相同的日期。

日期设定为

getDate(date: string) {
    //date = '2018-01-30T00:02:14.637Z';
    return new Date(date);
}

我已经尝试过这种方式并直接在模板中使用该字符串,结果是相同的M / D / YYYY

3 个答案:

答案 0 :(得分:1)

我刚试过这个,full提供了完整的日期。 fulldate仅提供日期,而不是时区和时区的日期。

我的HTML

  <div class='panel-heading'>
    {{pageTitle}} today: {{ today | date: 'full'}}
  </div>

在我的组件中

today: Date = new Date(Date.now());

结果如下:

enter image description here

请注意,日期以完整格式显示。 (忽略我把它放在哪里......我只是使用我的一个示例应用程序。)

答案 1 :(得分:1)

<强> TL; DR - 使用日期:&#39;完整&#39;如果您使用Angular v5或更大版本 - 如果您使用的是较低版本,请构建自己的日期字符串

https://angular.io/api/common/DatePipe上的文档基于我猜的当前版本。 我目前在@ angular / common 4.2.4上看过date_pipe.d.ts。

&#39; long&#39;,&#39; full&#39;,&#39; longTime&#39;和&#39; fullTime&#39;格式丢失。

因此,如果您不想更新到Angular 5,您仍然可以重建它们&#39;通过组合选择器:

*  | Component | Symbol | Narrow | Short Form   | Long Form         | Numeric   | 2-digit   |
*  |-----------|:------:|--------|--------------|-------------------|-----------|-----------|
*  | era       |   G    | G (A)  | GGG (AD)     | GGGG (Anno Domini)| -         | -         |
*  | year      |   y    | -      | -            | -                 | y (2015)  | yy (15)   |
*  | month     |   M    | L (S)  | MMM (Sep)    | MMMM (September)  | M (9)     | MM (09)   |
*  | day       |   d    | -      | -            | -                 | d (3)     | dd (03)   |
*  | weekday   |   E    | E (S)  | EEE (Sun)    | EEEE (Sunday)     | -         | -         |
*  | hour      |   j    | -      | -            | -                 | j (1 PM)  | jj (1 PM) |
*  | hour12    |   h    | -      | -            | -                 | h (1)     | hh (01)   |
*  | hour24    |   H    | -      | -            | -                 | H (13)    | HH (13)   |
*  | minute    |   m    | -      | -            | -                 | m (5)     | mm (05)   |
*  | second    |   s    | -      | -            | -                 | s (9)     | ss (09)   |
*  | timezone  |   z    | -      | -            | z (Pacific Standard Time)| -  | -         |
*  | timezone  |   Z    | -      | Z (GMT-8:00) | -                 | -         | -         |
*  | timezone  |   a    | -      | a (PM)       | -                 | -         | -         |

在我的情况下,我使用了

{{ dateString | date:''EEEE, MMMM dd, y, hh:mm:ss Z'}}

输出:&#34; 2018年4月9日星期一,格林威治标准时间03:42:00 + 2&#34;

答案 2 :(得分:-1)

您只能使用这个

date:'medium'