2016-05-20 3 views
0

Я пытался конвертировать число по дате в 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')); 

Это печать Invalid Дата FYI, $ rootScope.lastLoginTime = 1463256900000;

ответ

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 только принимает числовой аргумент, и преобразовать строку в число для вас, если вы передаете его один.

+0

Thats perfect. благодаря – user2431170

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);

+0

Ну, этот ответ исходит от сервера (1463074320000). Назначаю его переменной rootScope. Я попытался преобразовать его в строку, например var temp = $ rootScope.lastLoginTime; temp = temp.toString(); Даже сейчас я получаю недопустимую дату – user2431170

+0

Нужно преобразовать ее в число, а не строку –

Смежные вопросы