T在json中格式化日期[重复]
Posted
技术标签:
【中文标题】T在json中格式化日期[重复]【英文标题】:T Format date inside json [duplicate] 【发布时间】:2021-06-29 02:19:22 【问题描述】:我像这样从后端获取 json:
"datas":[
"id":4,
"create_date":"2021-03-18T21:11:57.239Z"
,
"id":5,
"create_date":"2021-03-19T19:37:05.829Z"
]
并像下面这样循环遍历json:
$(data.datas).each(function(index,value)
html += `<tr><th scope="row">$index+1</th>
<td>$value.id</td>
<td>$value.create_date</td>
<td><a href="#" class="btn btn-outline-dark">View Car</a></td>
</tr>`
)
但是,这里 create_date
只是像这样在 td 列中打印 2021-03-18T21:11:57.239Z
。那么,我怎样才能在每个 tds 中像 2021-03-18 & 21:11 am/pm
这样显示呢?
我的尝试:
var created_date = value.create_date;
console.log(created_date.split("T")[0]);//2021-03-18
console.log(created_date.split("T")[1])//21:11:57.239Z (how can i remove 57.239Z..)
我对两种解决方案都持开放态度,即:后端和前端。对于我的后端,我正在使用 django,如果您需要从后端查看任何代码,请告诉我。
【问题讨论】:
试试这个<td>$value.create_date|date:"M d, Y" </td>
【参考方案1】:
您可以在前端中应用MomentJS来格式化日期时间。
先决条件:
将MomentJS
脚本添加到您的HTML
// Demo with assign sample data into createdDate
var created_date = new Date();
console.log(moment(created_date).format("YYYY-MM-DD & HH:mm a"));
// Result: 2021-04-02 & 15:16 pm
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
参考:MomentJS Parse string format
【讨论】:
【参考方案2】:从后端解决它。您可以在 settings.py
中进行设置REST_FRAMEWORK =
'DATETIME_FORMAT': "%Y-%m-%d & %H:%M %p",
更多信息在DRF Documentation
输出将如下所示:
“create_date”:“2021-03-18 & 21:11 AM”
【讨论】:
您好,谢谢您的回答,但是,数据来自 db 。那么有什么办法可以做到吗? 试试@Vel 的建议,$value.create_date|date:"M d, Y" 在 jquery 代码中我猜它不起作用,因为我正在使用 jquery/ajax 代码生成 trs。以上是关于T在json中格式化日期[重复]的主要内容,如果未能解决你的问题,请参考以下文章