最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

highcharts - Convert from string with milliseconds to date object Javascript - Stack Overflow

programmeradmin4浏览0评论

I got this problem when dealing with date time conversion. I have timestamp data from postgreSQL database with format like this one

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

In order to display it in highcharts, I have to convert it to date or time object. Without milliseconds, I easily convert it with Date.js

But milliseconds can't be handled with that library. I tried also with Date.parse but always got NaN.

Any solution for this problem? Thank you

I got this problem when dealing with date time conversion. I have timestamp data from postgreSQL database with format like this one

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

In order to display it in highcharts, I have to convert it to date or time object. Without milliseconds, I easily convert it with Date.js

But milliseconds can't be handled with that library. I tried also with Date.parse but always got NaN.

Any solution for this problem? Thank you

Share Improve this question asked Apr 4, 2011 at 12:32 deerawandeerawan 8,4435 gold badges44 silver badges51 bronze badges 2
  • 2 Those are microseconds, not milliseconds and JavaScript time resolution starts with milliseconds.. so some accuracy will be lost. You need to extract that value, divide by 1000, append back to the string and follow one of the answers you got. Otherwise you'll have incorrect time. – Shadow Wizard Commented Apr 4, 2011 at 12:39
  • oh, I'm so sorry. My bad. Thank you for correcting me, Shadow. Thanks for your suggestion. I'll try it. – deerawan Commented Apr 7, 2011 at 8:05
Add a ment  | 

4 Answers 4

Reset to default 9

JS built in Date class should be able to handle this, and getTime() can return milliseconds since start 1970 (UNIX time). Watch out for time zone issues though; the constructor may interpret the date/time as being local, but getTime()'s milliseconds since 1970 may be in UTC, baking in a conversion that is difficult to remove.

new Date("2011-04-04 19:27:39.92034").getTime()
1301941659920

Many ways to Rome. The given code will return '(datestr=) 2011-4-4 19:27:39.92'. Is that what you look for?

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

Can't you just cut of the last 6 chars of that string? You might then round the miliseconds and eventually add a second to you time object.

This is simpler and in one line:

new Date('01/09/2015 06:16:14.123'.split(".")[0])
发布评论

评论列表(0)

  1. 暂无评论