比较不同格式的日期

时间:2016-10-07 20:48:43

标签: javascript angularjs date

我正在尝试在AngularJS中编写一段类似于下面的代码:

dev

然而,问题是参数inputDate的格式为“2016-10-12T00:00:00”,这与Date.now()函数的格式不同。有没有一种简单的方法可以在这两种格式之间进行转换,而不是从每种格式中解析月,日和年,并比较两者?

感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

$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对象比较,您可以使用常见的数字比较器:

<
>
<=
>=

不要使用==,它会比较它们的对象引用而不是它们的值。

答案 1 :(得分:0)

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

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

new Date().toISOString();撤消

答案 2 :(得分:0)

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

var convertedInput = new Date(inputDate);

如果你需要走另一条路并输出看起来不错的东西,那么技术没有格式化的输出。但是将毫秒解析为日期并不是很难!

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;