嗨,我有一个难度,因为我有一个无效的日期后,第一次进入它很好。
我在前面用{{....}}调用我的数据:
{% for lastRequest in listLastRequeteClient %}
<!-- en attente -->
<li class="collection-item">
<span class="title">{{ lastRequest.categoryName }}</span>
<div class="row">
<div class="col s5 ultra-small leftalign "style="padding-left: 0px">
{{ lastRequest.nameRequest }}
</div>
<div class="col s3 ultra-small center-align">
<span class="countDateTime">{{ lastRequest.dateRequest }}</span>
</div>
<div class="col s4 ultra-small ">
{% if lastRequest.isWaitingWorking == True %}
<span class="new badge orange" data-badge-caption="En attente"></span>
{% elif lastRequest.isWaitingWorking == True %}
<span class="new badge blue" data-badge-caption="En cours"></span>
{% elif lastRequest.isFinish == True %}
<span class="new badge" data-badge-caption="Effectué"></span>
{% endif %}
</div>
</div>
</li>
% endfor %}
和我的Javascript:
function countDateEntry()
{
$(".countDateTime").each(function()
{
// get it Oct. 27, 2017, 2:27 p.m
var dateEntry = $(this).text();
console.log(dateEntry);
// format it
var delSpace = dateEntry.replace(/ /gi, "");
var delVir = delSpace.replace(/,/gi, "");
var delDoublePoint = delVir.replace(/:/gi, "");
var FinishSerialize = delDoublePoint.replace(/\./gi, "");
console.log(FinishSerialize);
// test is date is valid
console.log(moment(FinishSerialize, 'MMMDYYYYhma').isValid());
var formatMomentDate = moment(FinishSerialize, 'MMMDYYYYhma').fromNow();
console.log(formatMomentDate);
//$(this).text(formatMomentDate);
});
}
但是显示我的console.log无效日期:
首先输入它是坏的。
Oct. 27, 2017, 2:27 p.m.
Oct272017227pm
true
3 days ago
Oct. 28, 2017, 8:39 p.m.
Oct282017839pm
false
Invalid date
Oct. 30, 2017, 6:28 p.m.
Oct302017628pm
false
Invalid date
Oct. 30, 2017, 6:29 p.m.
Oct302017629pm
false
Invalid date
一个想法? 我很抱歉我的英语不好。
答案 0 :(得分:2)
无法明确解析日期格式MMMDYYYYhma
。而是使用django和moment.js将处理的标准日期格式。
支持ISO 8601和RFC 2822/5322格式,无需额外配置。
ISO 8601 django:
{{ lastRequest.dateRequest|date:"c" }}
RFC 5322 django:
{{ lastRequest.dateRequest|date:"r" }}
Moment将能够解析这两种格式
var ISO_date = "2017-10-06T05:06:07"
var RFC_date = "06 Oct 2017 21:22:23 z"
console.log("ISO 8601:", ISO_date, " => ", moment(ISO_date))
console.log("RFC 5322/2822:", RFC_date, " => ", moment(RFC_date))
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.19.1/moment.min.js"></script>
&#13;