角度中的日期管道应该像文档中所述的那样工作: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
答案 0 :(得分:1)
我刚试过这个,full
提供了完整的日期。 fulldate
仅提供日期,而不是时区和时区的日期。
我的HTML
<div class='panel-heading'>
{{pageTitle}} today: {{ today | date: 'full'}}
</div>
在我的组件中
today: Date = new Date(Date.now());
结果如下:
请注意,日期以完整格式显示。 (忽略我把它放在哪里......我只是使用我的一个示例应用程序。)
答案 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'