django 修复HTML中的日期和时间格式

snz8szmq  于 2023-02-10  发布在  Go
关注(0)|答案(1)|浏览(237)

问题背景

大家好,我正在创建一个Twitter克隆。我正在使用JavaScript创建并插入一个新的推文到新闻提要。
在将新推文插入新闻提要后,我注意到刷新页面后日期和时间格式不同。以下示例供参考:

插入新闻源后&刷新页面前发推

刷新页面后鸣叫

JSON格式的推文如下所示

{
    "id": 56,
    "user": "admin",
    "content": "yes",
    "date": "Feb 07 2023, 12:26 AM",
    "likes": 0
  }

我使用Django作为后端& Tweet序列化的方式如下:

def serialize(self):
        return {
            "id": self.id,
            "user": self.user.username,
            "content": self.content,
            "date": self.date.strftime("%b %d %Y, %I:%M %p"),
            "likes": self.likes
        }

现在,我不确定是什么原因导致了日期和时间格式的不匹配:

  • 推文的序列化器,或
  • HTML如何处理日期和时间格式

Django Tweet模板

<small class="text-muted tweet-date">{{tweet.date}}</small>

JavaScript插入推文的代码

function createTweet(tweetJsonObject) {
    // clone Tweet from Tweet template
    let newTweet = document.querySelector(".tweet-template").cloneNode(true);
    newTweet.style.display = "block";
    newTweet.querySelector(".tweet-date").textContent = tweetJsonObject.date;
    newTweet.querySelector(".tweet-content").textContent = tweetJsonObject.content;
    newTweet.querySelector(".tweet-likes").textContent = tweetJsonObject.likes;
    newTweet.dataset.id = tweetJsonObject.id;
    // remove tweet-template & add tweet class
    newTweet.classList.remove('tweet-template');
    newTweet.classList.add('tweet');

    return newTweet;
}
mtb9vblg

mtb9vblg1#

使用日期过滤器来格式化Django模板中的日期
以下格式字符串应与JSON中使用的格式字符串的输出相匹配

<small class="text-muted tweet-date">{{ tweet.date|date:"M d Y, h:i A" }}</small>

相关问题