【问题标题】:Get later of two dates without using an if else在不使用 if else 的情况下获取两个日期中的较晚日期
【发布时间】:2018-05-04 19:17:10
【问题描述】:

使用 Moment.js 如何在不使用 if else 语句的情况下获取两个日期中的后者?那可能吗?我希望将两个日期中的后者分配给 eventConstraint 的开始。

eventConstraint: {
    start: firstAvailableDate,
    end: moment().add('months', 1).endOf('month')
}

这可以简化吗?

var firstAvailablePatchDate = moment('2018-05-13T00:00:00');

var firstAvailableDate;

if (moment() > endPatchValidation) {
    firstAvailableDate = moment().add('days', 1);
}
else
{
    firstAvailableDate = firstAvailablePatchDate;
}

【问题讨论】:

  • 您始终可以使用三元语句,从技术上讲,它是一个 if,但它是一个单行。为什么你不想要一个如果?您也可以尝试Math.max(moment(), endPatchValidation) 或任何您想要的两个值
  • @Taplar moment(Math.max(moment(), endPatchValidation)) 所以返回值被转换回矩对象。也就是说,我个人会坚持使用时刻功能。
  • @Taplar 也一样,实际上根本没有解决问题

标签: jquery fullcalendar momentjs fullcalendar-3


【解决方案1】:

“不使用 if else 语句”的要求似乎有点武断。也就是说,您应该为此使用时刻的 isBefore 检查和三元语句:

var firstAvailablePatchDate = moment('2018-05-13T00:00:00'); 
var firstAvailableDate = endPatchValidation.isBefore(moment()) ?  moment().add('days', 1) : firstAvailablePatchDate;

【讨论】:

  • 酷。 isBefore 适用于我正在尝试做的事情。最后只需要正确的变量,firstAvailablePatchDate。谢谢!
【解决方案2】:

你可以用三元运算

moment() > endPatchValidation ? firstAvailableDate = moment().add('days', 1) : firstAvailableDate = firstAvailablePatchDate;

【讨论】:

    猜你喜欢
    • 2022-10-02
    • 1970-01-01
    • 1970-01-01
    • 2017-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-11
    相关资源
    最近更新 更多