Конвертировать из строки с миллисекундами в дату объекта Javascript - PullRequest
5 голосов
/ 04 апреля 2011

Эта проблема возникла при преобразовании даты и времени.У меня есть данные метки времени из базы данных postgreSQL с таким форматом, как этот

"2011-04-04 19: 27: 39.92034"

Чтобы отобразить его в старших диаграммах, мне нужно преобразоватьдата или время объекта.Без миллисекунд я легко конвертирую его с Date.js

Но миллисекунды не могут быть обработаны с этой библиотекой.Я пробовал также с Date.parse, но всегда получал NaN.

Есть ли решение этой проблемы?Спасибо

Ответы [ 4 ]

7 голосов
/ 04 апреля 2011

JS, встроенный в класс Date, должен быть в состоянии справиться с этим, и getTime () может возвращать миллисекунды с начала 1970 года (время UNIX). Остерегайтесь проблем с часовыми поясами; конструктор может интерпретировать дату / время как локальные, но миллисекунды getTime () с 1970 года могут быть в UTC, что вызывает преобразование, которое трудно удалить.

new Date("2011-04-04 19:27:39.92034").getTime()
1301941659920
2 голосов
/ 04 апреля 2011

Много способов добраться до Рима.Данный код вернет '(datestr =) 2011-4-4 19: 27: 39.92'.Это то, что вы ищете?

var darr = '2011-04-04 19:27:39.92034'.split('.')
  , dat=new Date(darr[0])
  , datestr = '';
dat.setMilliseconds(Math.round(darr[1]/1000));
datestr = [ [dat.getFullYear(),dat.getMonth()+1,dat.getDate()].join('-')
            ,' ', 
            [dat.getHours(),dat.getMinutes(),dat.getSeconds()].join(':')
            ,'.',
            dat.getMilliseconds()
          ].join('');
0 голосов
/ 25 августа 2016

Это проще и в одну строку:

new Date('01/09/2015 06:16:14.123'.split(".")[0])
0 голосов
/ 04 апреля 2011

Не могли бы вы просто вырезать из последних 6 символов этой строки?Затем вы можете округлить милисекунды и в конечном итоге добавить к вам второй объект времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...