我会测试本地法语格式的字符串日期值是否在特定日期之后。
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
但是当我将false
与April 5th 2019
进行比较时,我总是得到2019-04-03
您必须将比较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>