将解析的日期与moment.js进行比较

时间:2019-04-09 09:55:30

标签: javascript momentjs date-formatting

我将测试本地法语格式的字符串日期值是否在特定日期之后。

const value = moment("vendredi 5 avril 2019").isAfter('2019-04-03');
console.log(value);

实际上我得到的结果为false,但这应该是正确的。

是否有片刻或JS方法将本地字符串日期转换为日期格式?

toLocalString()的倒数

编辑:

我已经更新了代码

const _text= "vendredi, 5 avril 2019";
var format = 'LLLL, Do MMMM YYYY, h:mm:ss a';
const newDate= moment(_text, format, 'fr')
                  .locale('en')
                  .format('MMMM Do YYYY');
console.log(newDate);
const value = moment(newDate).isAfter('2019-04-03');
console.log(value);

它将法语日期转换为英语

April 5th 2019

但是将falseApril 5th 2019进行比较时,我总是得到2019-04-03

2 个答案:

答案 0 :(得分:1)

您必须将比较newDate的日期格式设置为YYYY-MM-DD。这是一个基于您的代码的有效示例:

const moment = require('moment');

const _text= "vendredi, 5 avril 2019";
var format = 'LLLL, Do MMMM YYYY, h:mm:ss a';
const newDate= moment(_text, format, 'fr')
                  .locale('en')
                  .format('YYYY-MM-DD');
console.log(newDate);
const value = moment(newDate).isAfter('2019-04-03');
console.log(value);

答案 1 :(得分:1)

为什么要将解析后的日期转换为另一个字符串并将其与您的日期进行比较?

如果您仅分析法语日期并将结果与​​2019-04-03进行比较,就会得到预期的结果:

const _text= "vendredi, 5 avril 2019";
var format = 'LLLL, Do MMMM YYYY, h:mm:ss a';
const newDate= moment(_text, format, 'fr');
const isAfter = newDate.isAfter('2019-04-03');
console.log(isAfter);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/locale/fr.js"></script>

相关问题