gpt4 book ai didi

javascript - 如何使用 MomentJS 正确检查日期是否相同或晚于今天?

转载 作者:行者123 更新时间:2023-11-29 10:58:33 26 4
gpt4 key购买 nike

我正在尝试验证一个字段是否有今天之前的日期。我正在使用 MomentJS 和以下功能:

  • 是有效日期,我正在使用 isValid()
  • 与今天或之后相同,我正在使用 isSameOrAfter()

我是这样做的:

$("#btn").click(function(){
const value = moment(new Date($('#field').val()), 'MM/DD/YYYY', true)
console.log(value)

//console.log(value.isValid() && value.isSameOrAfter(moment(new Date(), 'MM/DD/YYYY')))
//console.log(value.isValid() && value.isSameOrAfter(moment()))
console.log(value.isValid() && value.isSameOrAfter(moment(new Date())))
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>

<input type="text" name="field" id="field" />
<button id="btn">Click Me</button>

我不确定我在这里可能会遗漏什么,但正如您所看到的那样不起作用,我尝试了三种不同的方法(对上面的代码片段进行了评论)。

我注意到的一件事是 moment() 对象返回时区格式的日期:2018-08-10T04:00:00.000Z 这可能是打破验证?

我在这里缺少什么?

最佳答案

您可以通过将粒度单位指定为第二个参数来指定moment#isSameOrAfter 的粒度:

const value = moment(new Date($('#field').val()), 'MM/DD/YYYY', true)
console.log(value.isValid() && value.isSameOrAfter(moment(new Date()), 'day'));

接受的时间单位是: 小时 分钟 。如果不指定粒度,moment 将默认为毫秒。

http://jsfiddle.net/dp7rzmw5/24211/

关于javascript - 如何使用 MomentJS 正确检查日期是否相同或晚于今天?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51787295/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com