javascript - 带有类的 momentJs 无法正常工作 django

标签 javascript python django

嗨,我在 moment.js 第一次输入时遇到了困难,但在我输入无效日期之后。

我用 {{....}} 调用我的数据:

{% 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 无效日期:

第一次进入后就ok了。

        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

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

最佳答案

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

都支持ISO 8601RFC 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))
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.19.1/moment.min.js"></script>

关于javascript - 带有类的 momentJs 无法正常工作 django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47022336/

相关文章:

javascript - JS Flot 图表 : 2 y-axes with the same data. 一张是数字数据,一张是百分比

javascript - 无法打开购物车对话框 - Material 对话框 - Angular2+

javascript - 将 CSS3 过渡添加到 jQuery Animate 脚本

python - Pandas - 取 N 个以前的值并从 Series 中创建矩阵

python - 使用 python+django 解压缩/解压缩文件

json 中的 Django REST 框架 url

javascript - Node.js fs.createWriteStream 未定义函数

python - 为什么打印返回\\,而不是 Python 中的转义字符\

python - 在 Python 中延迟评估/惰性评估

python - 显示网页中的所有链接