gpt4 book ai didi

datetime - AngularJS 日期过滤器时间不正确

转载 作者:行者123 更新时间:2023-12-02 06:28:31 24 4
gpt4 key购买 nike

我有一个格式化为 isotime 的日期对象。我正在使用|日期过滤器在我的模板中很好地格式化它,但它错误地更改了时间。

这段代码...

    <td>[[ user.last_online | date:'dd MMM yyyy - hh:mm a' ]]</td>
<td>[[ user.last_online ]]</td>

结果...

enter image description here

现在我知道 1 小时的差异是由于时区造成的,这正是我所期望的。然而, session 记录是不正确的。

在第一行中,应用过滤器后会添加 13 分钟。在第二行中,添加了 5 分钟。

这两个值不仅错误,而且不一致。

最佳答案

如果你检查ISO8601,你可以看到正确的时间戳格式是

yyyy-MM-ddTHH:mm:ss.SSSZ

毫秒应由 3 位数字组成。我做了一个简单的测试,您可以看到在更正毫秒部分后,日期将正确呈现。

{{"2013-08-09T15:36:31.764546+02:00" | date:'dd MMM yyyy - hh:mm a'}}<br />
{{"2013-08-09T15:34:14.318753+02:00" | date:'dd MMM yyyy - hh:mm a'}}<br />
{{"2013-08-09T15:36:31.764+02:00" | date:'dd MMM yyyy - hh:mm a'}}<br />
{{"2013-08-09T15:34:14.318+02:00" | date:'dd MMM yyyy - hh:mm a'}}<br />

结果是

09 Aug 2013 - 09:49 AM
09 Aug 2013 - 09:39 AM
09 Aug 2013 - 09:36 AM
09 Aug 2013 - 09:34 AM

Demo

更新

Python 的 datetime.isoformat()返回以微秒为单位的时间 0 <= microsecond < 1000000 。 Angularjs 不喜欢,尽管根据 ISO8601 这种格式是正确的,因为 ISO8601 只需要 one or more digits representing a decimal fraction of a second

所以我想你可以使用strftime对其进行格式化。

关于datetime - AngularJS 日期过滤器时间不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18148546/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com