6

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

“2011-04-04 19:27:39.92034”

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

但是该库无法处理毫秒。我也尝试过 Date.parse 但总是得到 NaN。

这个问题有什么解决办法吗?谢谢

4

4 回答 4

9

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

new Date("2011-04-04 19:27:39.92034").getTime()
1301941659920
于 2011-04-04T12:34:48.420 回答
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('');
于 2011-04-04T14:33:50.253 回答
0

你不能只剪掉那个字符串的最后 6 个字符吗?然后,您可能会舍入毫秒并最终为您的时间对象添加一秒。

于 2011-04-04T12:34:39.677 回答
0

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

new Date('01/09/2015 06:16:14.123'.split(".")[0])
于 2016-08-25T11:54:41.190 回答