【问题标题】:Angularjs formatting a postgres timestamp from django appAngularjs 从 django 应用程序格式化 postgres 时间戳
【发布时间】:2014-11-16 16:18:37
【问题描述】:

我需要在我的应用中显示一个时间戳,例如: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,我认为它也不会起作用...

【问题讨论】:

    标签: python django angularjs postgresql


    【解决方案1】:

    好的,我明白了,这实际上不是我在模型中设置时间戳对象的位置,而是我定义它如何返回到 json 的位置...这是我之前对其进行格式化的方式:

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

    新格式(angular能理解的ISO8061):

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

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

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

    这给了我想要的 3:21PM 看起来时间戳!

    【讨论】:

      猜你喜欢
      • 2017-12-17
      • 1970-01-01
      • 2019-10-03
      • 2019-02-17
      • 1970-01-01
      • 1970-01-01
      • 2011-11-04
      相关资源
      最近更新 更多