【问题标题】:DateTime Filter AngularJS not Giving Correct Date?DateTime过滤器AngularJS没有给出正确的日期?
【发布时间】:2015-12-02 12:56:38
【问题描述】:

我使用后端作为 Tomcat,它给我的时间戳如下:-

1448966450000 如果我这次使用website to convert 到日期时间,它会给我如下信息:-

1448966450000 -> Wed, 02 Dec 47885 00:33:20 GMT

但是当我为 AngularJS 使用过滤器时,它给了我这样的东西:-

{{1448966450000 | date: "MMM dd,yyyy '@' hh:mma"}} -> Dec 01,2015 @ 04:10PM

我住在印度,根据 IST 的说法,我收到的过滤器时间是非常错误的。我无法理解问题出在哪里。

注意:角度显示的日期是错误的,而前一个是正确的。

【问题讨论】:

    标签: javascript java angularjs date datetime


    【解决方案1】:
    1. 看看你的时间戳,你的网站需要时间戳以秒为单位,但角度过滤器接受毫秒,所以你需要将过滤器中的时间戳乘以 1000,你需要输入 1448966450000000 , 不是 1448966450000

    2. 检查时区:​​将时区添加到输出格式 (Z)

    3. 如果时区不适合您,请设置首选时区

      {{1448966450000 | date: "MMM dd,yyyy '@' hh:mma" : '+0530'}}

    欲了解更多信息,请参阅https://docs.angularjs.org/api/ng/filter/date

    【讨论】:

    【解决方案2】:

    您使用的时间戳是自 1970 年 1 月 1 日以来的毫秒数 角度过滤器做得对。 您测试的网站需要以秒为单位的时间戳。

    【讨论】:

    • 其实不是这样的。您会发现转换日期是正确的,而角度日期是错误的。对不起,我会更新相同的。
    • Angular 表达式是 javascript 加上管道运算符的子集。在您的过滤器表达式中,144896645000 被解释为自 1970 年 1 月 1 日以来的时间(以毫秒为单位)。这是 javascript 默认值。不像您所期望的那样,作为 unix 时间戳。抱歉,但是 Angular 是正确的。
    猜你喜欢
    • 1970-01-01
    • 2017-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-22
    • 1970-01-01
    相关资源
    最近更新 更多