我将测试本地法语格式的字符串日期值是否在特定日期之后。
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
答案 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>