我有一个时间戳1378028575
,它给了我Sun, 01 Sep 2013 09:42:55 GMT
here。但是,当我尝试使用Angular date
对其进行格式化时,会使用以下格式将其返回为Jan 17, 1970 2:47:08 AM
:{{'1378028575' | date:'medium'}}
。该网站的结果是正确的,但在Angular中是错误的。为什么会这样,或者我做错了什么?
答案 0 :(得分: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)
来自angular docs:
格式化日期对象,毫秒(字符串或数字)的日期 或各种ISO 8601日期时间字符串格式(例如 yyyy-MM-ddTHH:mm:ss.SSSZ及其较短的版本 yyyy-MM-ddTHH:mmZ,yyyy-MM-dd或yyyyMMddTHHmmssZ)。如果没有时区 在字符串输入中指定,时间被认为是在 当地时区。
答案 1 :(得分:11)
另一个答案并不完整。由于你的时间戳是以秒为单位,而不是几毫秒,因此在Angular.js中你可以这样做:
{{1378028575 * 1000 | date:'medium'}}
知道秒数* 1000 =毫秒是一回事。知道你可以把数学放在日期表达式中是另一个:)