Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 比较日、月和年_Javascript_Date_Comparison - Fatal编程技术网

Javascript 比较日、月和年

Javascript 比较日、月和年,javascript,date,comparison,Javascript,Date,Comparison,下午好,在我的时区 我想比较两个日期,一个由用户插入,另一个是当前日期。代码片段: var dateString = "2012-01-03" var date = new Date(dateString); date < new Date() ? true : false; var dateString=“2012-01-03” 变量日期=新日期(日期字符串); 日期

下午好,在我的时区

我想比较两个日期,一个由用户插入,另一个是当前日期。代码片段:

    var dateString = "2012-01-03"
    var date = new Date(dateString);
    date < new Date() ? true : false;
var dateString=“2012-01-03”
变量日期=新日期(日期字符串);
日期<新日期()?真:假;
这返回真值,我认为在引擎盖下,两个日期对象都被转换为毫秒,然后进行比较,如果是这样,“今天”对象会因为小时和分钟而变大。所以我想做的是只按天、月和年比较日期。最好的方法是什么?创建一个新的日期对象,然后在比较之前将小时分钟和毫秒重置为零?或者从两个日期对象中提取月和年的日期并进行比较?有没有更好的办法

提前谢谢 致以最良好的问候。
新年快乐

设定你的工作时间


由于它是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);
var currentDate=新日期();
var year=currentDate.getFullYear();
var month=currentDate.getMonth()+1;
如果(月<10)月=“0”+月;
var day=currentDate.getDate();
如果(天<10)天=“0”+天;
当前日期=年+月+日;
var dateString=“2012-01-03”
var compareDates=日期字符串<当前日期?真:假;
文件。编写(比较);

基于公认答案顶部的生产准备示例

  • 将以下函数添加到Javascript中

    Date.prototype.removeTimeFromDate=函数(){ var newDate=新日期(本); newDate.setHours(0,0,0,0); 返回newDate; }

  • 只要你想比较,就调用它

    firstDate.removeTimeFromDate()

  • 有关日期转换的更多信息,请访问:-Awesome solution
    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);