我在页面上创建错误消息时遇到问题,该页面上有“起始日期:”和“终止日期:”。如果两个日期之间的差值大于或等于60天,则必须输入错误消息。
我正在尝试使用moment.js,这就是我的代码现在的样子。建议在淘汰验证代码中使用它。这就是现在的样子:
var greaterThan60 = (moment().subtract('days', 60) === true) ? "The max range for from/to date is 60 days." : null;
我仍然不确定如何使它大于60天,而不仅仅是60天。这就是老板给我的帮助。
答案 0 :(得分:0)
moment.js提供了diff()方法来查找日期之间的差异。请检查以下示例。
var fromDate = 20180606;
var toDate = 20180406;
var dif = moment(fromDate, 'YYYYMMDD').diff(moment(toDate, 'YYYYMMDD'),'days')
console.log(dif) // 61
答案 1 :(得分:0)
subtract
返回一个新的矩对象。因此,检查true总是返回false。您可以使用range
和diff
来计算天数差异并检查:
let start = moment('2016-02-27');
let end = moment('2016-03-02');
let range = moment.range(start, end);
let days = range.diff('days');
let error = null;
if (days > 60) {
error = "The max range for from/to date is 60 days.";
}
答案 2 :(得分:0)
您可以尝试一下。
var date = Date.parse("2018-04-04 00:00:00");
var selectedFromDate = new Date(date);
var todayDate = new Date();
var timedifference = Math.abs(todayDate.getTime() - selectedFromDate.getTime());
var daysDifference = Math.ceil(timedifference/(1000 * 3600 * 24));
仅使用if else循环进行60天以上的验证。
if(daysDifference > 60)
{
alert("From Date should be less than 2 months");
}
答案 3 :(得分:0)
使用.isSameOrAfter
函数比较结束值是否大于或等于开始值加上60天。示例:
var greaterThan60 = toDate.isSameOrAfter(startDate.add(60, 'days'));
其中toDate
是您作为时刻对象的结束时间,而startDate
是您作为时刻对象的开始时间。如果结束日期大于或等于开始日期的60天,则greaterThan60
为真。
参考文献: