将解析日期与时刻js进行比较

问题描述 投票:0回答:2

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

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

javascript momentjs date-formatting
2个回答
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
投票

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

如果您只是解析法语日期并将结果与​​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>
© www.soinside.com 2019 - 2024. All rights reserved.