无效日期 - 迄今为止的数字

时间:2016-05-20 14:50:02

标签: javascript angularjs date datetime angularjs-scope

我试图在Javascript中将数字转换为日期。以下是我试过的代码

    var newDate = new Date(1012256900000);
    console.log("Test: ",newDate.toString('MMM-yyyy'));

这很好用。 但是当我从$ rootScope对象获取它时,我的日期无效:(

    var newDate = new Date($rootScope.lastLoginTime);
    console.log("Test: ",newDate.toString('MMM-yyyy'));

这是打印无效日期。仅供参考, $ rootScope.lastLoginTime = 1463256900000;

2 个答案:

答案 0 :(得分:0)

猜猜你的$rootScope.lastLoginTime = '1463256900000';而不是$rootScope.lastLoginTime = 1463256900000;

new Date(time)在时间为number时有效,而非时间为string

var t1 = 1463256900000;
var t2 = '1463256900000';

var d1 = new Date(t1);
var d2 = new Date(t2);

console.info(d1);
console.info(d2);

答案 1 :(得分:0)

这里要猜一下,但看看我在浏览器控制台中做了些什么:

new Date(1463256900000)
> [date] Sat May 14 2016 21:15:00 GMT+0100

new Date("1463256900000")
> [date] Invalid date

完全疯狂猜测,但也许您应该确保将数字而不是字符串传递给new Date() - 在任何一种情况下,构造函数的行为非常

考虑改为:

var newDate = new Date();
newDate.setTime($rootScope.lastLoginTime);

setTime只接受一个数字参数,如果你传递一个字符串,它会将你的字符串转换成一个数字。