javascript - 检查 momentjs 中的开始日期时间和结束日期时间是否有效

标签 javascript date datetime momentjs

我是 momentJs 新手,所以我需要一些帮助。我正在构建一个表单,用户可以在其中发送特定工作期间的空闲情况。所以在表单中你有一个开始日期、开始时间、结束日期和结束时间。由于我必须从客户端使用 api,我们必须发送这样的日期(示例)“2015-06-17T14:24:36”(中间有“T”)。目前,我收到的日期和时间彼此分开,但最终将它们合并在一起,以便它适合 api 读取日期的方式。

现在我的问题如下。我必须创建一个检查,可以查看输入的开始日期时间和结束日期时间是否有效。例如,开始日期始终必须是结束日期之前的日期(逻辑正确)。但是在 momentJS 中有一个简单的方法可以做到这一点吗?

或者我应该使用其他方法吗?

感谢您的关注,如果我的问题不太清楚,请告诉我,以便我提供额外的信息!

注意:最后应该是这样的:

var start =“2017-06-17T14:24:36”

var end =“2017-07-03T14:24:36”

检查开始日期和结束日期是否有效的函数

结果=真

最佳答案

如果您只需检查 startDate 是否早于 endDate,您可以使用 isAfter .

这是一个工作示例:

var start = "2017-06-17T14:24:36";
var end = "2017-07-03T14:24:36";

function checkDate(start, end){
 var mStart = moment(start);
 var mEnd = moment(end);
 return mStart.isBefore(mEnd);
}

console.log(checkDate(start, end));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>

<小时/>

在我的第一个示例中,我使用 moment(String)接受 ISO 8601 格式输入的解析。

如果您需要解析非 ISO 8601 格式,您可以使用 moment(String, String)指定输入格式(例如 var mStart = moment(start, 'DD-MM-YYYYTHH:mm:ss');)。

如果您必须支持多种格式,您可以使用 moment(String, String[]) 。正如文档所述 moment(String, String[]):

  • Prefer formats resulting in valid dates over invalid ones.
  • Prefer formats that parse more of the string than less and use more of the format than less, i.e. prefer stricter parsing.
  • Prefer formats earlier in the array than later.

关于javascript - 检查 momentjs 中的开始日期时间和结束日期时间是否有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43325147/

相关文章:

ruby-on-rails - 将周数转换为日期

java - 如何将此 unix 时间字符串转换为 java 日期

javascript - 使用正则表达式查找单词之间的特定文本

javascript - 如何在点击时暂停进度条?

php - 获取上个月和下个月的年份

c# - 用于检查日月年日期的 C# 函数

Java Joda时间多日期格式代码优化

javascript - 复杂的 wolframalpha ajax 查询

javascript - CSS 或 javascript - 如何在浏览器具有不同的 DPI/缩放设置时修复外观?

java - 按日期分组,看看日期是不是今天?