将解析的日期与 momentjs 进行比较

Comparing a parsed date with momentjs

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

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

实际上我得到了结果 false 但它应该是真的。

有没有moment或者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

但在比较 April 5th 20192019-04-03

时我总是得到 false

您必须将比较 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);

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

如果您只是解析法国日期并将结果与​​ 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>