[英]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.