我需要使用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
。因此,如果Month
或Day
过去,则会忽略该内容!
有人可以就how to check for the day and month as well as the year
提出建议吗?
提前致谢。
修改
日期格式为
dd/mm/yyyy
答案 0 :(得分:1)
查看date constructor in the documentation 参见&#34;语法&#34; ,它按此顺序排列整数:YYYY,MM,DD,HH,MM,SS ... < / p>
所以重新排序就是诀窍。请记住,月份是零基础。
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;
在处理日期时,强烈暗示的另一种方式是使用Moment.js:
因此,您可以轻松管理任何日期格式......并可靠地输出各种日期计算。
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;
答案 1 :(得分:0)
将它设为两个数字并进行比较
scala/java/code-tricks