我有一个1378028575
给我Sun, 01 Sep 2013 09:42:55 GMT
的时间戳。但是当我尝试使用 Angular 对其进行格式化时date
,它会Jan 17, 1970 2:47:08 AM
使用以下格式将其返回为 : {{'1378028575' | date:'medium'}}
。该站点的结果是正确的,但在 Angular 中是错误的。为什么会发生,或者我做错了什么?
问问题
7330 次
2 回答
19
它的原因是您使用秒而不是毫秒。
new Date(1378028575)
Fri Jan 16 1970 23:47:08 GMT+0100 (CET)
new Date(1378028575000)
Sun Sep 01 2013 11:42:55 GMT+0200 (CEST)
来自角度文档:
日期格式化为日期对象、毫秒(字符串或数字)或各种 ISO 8601 日期时间字符串格式(例如 yyyy-MM-ddTHH:mm:ss.SSSZ 及其较短的版本,如 yyyy-MM-ddTHH:mmZ、yyyy-MM -dd 或 yyyyMMddTHHmmssZ)。如果在字符串输入中未指定时区,则时间被认为是本地时区。
于 2013-09-09T10:41:15.917 回答
13
另一个答案不是很完整。由于您的时间戳以秒为单位,而不是毫秒,因此在 Angular.js 中您可以这样做:
{{1378028575 * 1000 | date:'medium'}}
知道秒 * 1000 = 毫秒是一回事。知道您可以将数学放在日期表达式中是另一回事:)
于 2015-02-23T05:34:05.510 回答