从具有毫秒的字符串转换为日期对象Javascript

时间:2011-04-04 12:32:05

标签: javascript highcharts

我在处理日期时间转换时遇到了这个问题。我有来自postgreSQL数据库的时间戳数据,格式就像这样

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

为了在highcharts中显示它,我必须将它转换为日期或时间对象。没有毫秒,我可以使用Date.js

轻松转换它

但是不能用该库处理毫秒。我也试过Date.parse但总是得到NaN。

针对此问题的任何解决方案?谢谢

4 个答案:

答案 0 :(得分:7)

在Date类中构建的JS应该能够处理这个,并且getTime()可以从1970年开始返回毫秒(UNIX时间)。注意时区问题;构造函数可能会将日期/时间解释为本地,但自1970年以来getTime()的毫秒数可能是UTC,在难以删除的转换中烘焙。

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

答案 1 :(得分:2)

罗马的很多方式。给定的代码将返回'(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('');

答案 2 :(得分:0)

难道你不能剪掉那根弦的最后6个字符吗?然后你可能会在几毫秒内完成并最终为你的时间对象增加一秒。

答案 3 :(得分:0)

这更简单,并且在一行中:

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