momentJs与班级不能正常工作django

时间:2017-10-30 18:52:10

标签: javascript python django

嗨,我有一个难度,因为我有一个无效的日期后,第一次进入它很好。

我在前面用{{....}}调用我的数据:

{% 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

一个想法? 我很抱歉我的英语不好。

1 个答案:

答案 0 :(得分:2)

无法明确解析日期格式MMMDYYYYhma。而是使用django和moment.js将处理的标准日期格式。

支持ISO 8601RFC 2822/5322格式,无需额外配置。

ISO 8601 django:

{{ lastRequest.dateRequest|date:"c" }}

RFC 5322 django:

{{ lastRequest.dateRequest|date:"r" }}

Moment将能够解析这两种格式

&#13;
&#13;
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;
&#13;
&#13;

相关问题