如何使用JavaScript检测日期是否过去?

时间:2018-06-10 15:33:51

标签: javascript jquery date

我需要使用javascript检查日期是否过去。

日期格式如下:10/06/2018

我可以使用以下代码执行此操作:

var datep = '10/06/2018';
if(Date.parse(datep)-Date.parse(new Date()) < 0) {
   alert('date is in the past');
}

但是这段代码似乎只检查Year。因此,如果MonthDay过去,则会忽略该内容!

有人可以就how to check for the day and month as well as the year提出建议吗?

提前致谢。

修改

日期格式为

dd/mm/yyyy 

2 个答案:

答案 0 :(得分:1)

查看date constructor in the documentation 参见&#34;语法&#34; ,它按此顺序排列整数:YYYY,MM,DD,HH,MM,SS ... < / p>

所以重新排序就是诀窍。请记住,月份是零基础。

&#13;
&#13;
var date = '09/06/2018'; // DD/MM/YYYY

// Create a date object...
var dateArr = date.split("/");
var dateToCompare = new Date(parseInt(dateArr[2]),parseInt(dateArr[1])-1,parseInt(dateArr[0]));
console.log(dateToCompare);

// Date object for today
var today = new Date();
console.log(today);

if(dateToCompare < today){
  alert('date is in the past');
}
&#13;
&#13;
&#13;

在处理日期时,强烈暗示的另一种方式是使用Moment.js

因此,您可以轻松管理任何日期格式......并可靠地输出各种日期计算。

&#13;
&#13;
var date = '10/06/2018'; // DD/MM/YYYY

// Create a date object...
var dateToCompare = moment(date,"DDMMYYYY");  // See that second argument?
console.log(dateToCompare);

// Date object for today
var today = moment().startOf('day');  // At midnight earlier today
console.log(today);

if(dateToCompare < today){
  alert('date is in the past');
}
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

将它设为两个数字并进行比较

scala/java/code-tricks