繁体   English   中英

比较不同格式的日期

[英]Comparing Dates of Different Formats

我试图在AngularJS中编写类似于下面的代码:

$scope.isAfterToday= function(inputDate){
    if(inputDate > Date.now().toString()){
        return true;
    } else {
        return false;
    }
}

但是,问题在于参数inputDate的格式为“ 2016-10-12T00:00:00”,该格式不同于Date.now()函数的格式。 除了强力解析每种格式的月,日和年并比较两者之外,是否有一种简便的方法可以在这两种格式之间进行转换?

感谢您的任何帮助!

$scope.isAfterToday=function(inputDate){
    //First get the first time *after* today:
    var t = new Date().setHours(0,0,0,0);//0 seconds into this morning
    t.setDate(t.getDate()+1); //midnight tomorrow
    new Date(inputDate) > t );
};

无需外部库。 您可以直接比较Date对象,并且Date构造函数接受各种日期格式字符串作为输入。

对于Date对象比较,可以使用常见的数字比较器:

<
>
<=
>=

但是不要使用== ,它将比较其对象引用而不是其值。

您可以将inputDate包装在标准Date对象中,如下所示:

new Date("2016-10-12T00:00:00").getTime(); // you'll get 1476230521000

new Date().toISOString(); 扭转

您可以使用Date对象将inputDate转换为可以比较的毫秒数。

var convertedInput = new Date(inputDate);

如果您需要另辟and径并输出看起来不错的东西,那么从技术上讲,没有格式化输出。 但是将毫秒解析为日期并不难!

var today = new Date();
var day = today.getDate();
var month = today.getMonth() + 1; //Month is 0-based for some reason
var year = today.getFullYear();
var datenow = year + "-" + month + "-" + day;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM