Angularjs格式化django应用程序的postgres时间戳

时间:2014-11-16 16:18:38

标签: python django angularjs postgresql

我有一个时间戳,我需要在我的应用中显示:3:21PM

我的Django / python代码设置这样的对象:

timestamp = models.DateTimeField(default=datetime.now)

我可以使用:

以角度访问此时间戳
{{message.timestamp}}

这给了我整个时间戳,其格式如下:

2014 - 11 - 14  23:59:13 +0300

因为我希望我的时间戳看起来像3:21PM,所以这不起作用!我尝试做的是创建一个过滤器(在filters.js中):

  .
  filter('asDate', function () {
    return function (input) {
      return new Date(input);
    }});

有了过滤器,理论上我应该可以在我的标签中访问Angular的所有各种时间戳格式,如下所示:

{{ message.timestamp | asDate | date:"shortTime" }}

这将是完美的,除非它不起作用 - 在我的应用程序中显示:

NaN:NaNPM

所以在此之后我回到我的过滤器并尝试将input记录到控制台,它显示为我之前粘贴的,所以我只是卡在这里。我甚至尝试使用一些正则表达式删除空格:

input.replace(/\s+/g, '');

这返回2014-11-1423:59:13+0300我认为不会起作用......

1 个答案:

答案 0 :(得分:0)

好的我明白了,它实际上并不是我在我的模型中设置timestamp对象的地方,而是我定义它如何返回到json ...这就是我以前格式化它的方式:

return self.timestamp.strftime("%Y - %m - %d  %H:%M:%S +0300")

新格式(角度理解的ISO8061):

return self.timestamp.strftime("%Y-%m-%dT%H:%M:%S+0300")

现在我也不需要过滤器,我只是像以前一样使用我的标签:

{{ message.timestamp | date:"shortTime" }}

这给了我想要的3:21PM寻找时间戳!