我的时区下午好。
我想比较两个日期,其中一个是由用户插入的,另一个是当天。代码片段:
var dateString = "2012-01-03"
var date = new Date(dateString);
date < new Date() ? true : false;
这返回true,我认为在引擎盖下,Date对象都被转换为毫秒然后进行比较,如果是这样,“今天”对象因为小时和分钟而变大。所以我想要做的是比较日期只是按月和年份。最好的方法是什么?创建一个新的Date对象,然后在比较之前将小时分钟和毫秒重置为零?或者从两个日期对象中提取月份和年份的日期并进行比较?有没有更好的方法?
提前致谢 最诚挚的问候。 新年快乐
答案 0 :(得分:19)
设置您创建的date to zeros的时间部分。
var d = new Date();
d.setHours(0,0,0,0);
答案 1 :(得分:0)
因为它是yyyy-mm-dd格式,你可以从日期对象构建当前的yyyy-mm-dd并进行常规的字符串比较:
var currentDate = new Date();
var year = currentDate.getFullYear();
var month = currentDate.getMonth()+1;
if (month < 10) month = "0" + month;
var day = currentDate.getDate();
if (day < 10) day = "0" + day;
currentDate = year + "-" + month + "-" + day;
var dateString = "2012-01-03"
var compareDates = dateString < currentDate ? true : false;
document.write(compareDates);
答案 2 :(得分:0)
基于已接受答案
的生产就绪示例在Javascript中添加以下功能
Date.prototype.removeTimeFromDate = function(){ var newDate = new Date(this); newDate.setHours(0,0,0,0); 返回newDate; }
在您希望进行比较时调用
firstDate.removeTimeFromDate()