我试图在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;
答案 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
只接受一个数字参数,如果你传递一个字符串,它会将你的字符串转换成一个数字。