【问题标题】:Comparing a parsed date with momentjs将解析的日期与 momentjs 进行比较
【发布时间】:2019-04-09 09:55:30
【问题描述】:

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

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

【问题讨论】:

  • 也许你可以使用直接 moment(_text, format, 'fr') 与预定义的日期时间进行比较

标签: javascript momentjs date-formatting


【解决方案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);

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2017-10-01
      • 1970-01-01
      • 2018-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-16
      相关资源
      最近更新 更多