我在处理日期时间转换时遇到了这个问题。我有来自postgreSQL数据库的时间戳数据,格式就像这样
" 2011-04-04 19:27:39.92034"
为了在highcharts中显示它,我必须将它转换为日期或时间对象。没有毫秒,我可以使用Date.js
轻松转换它但是不能用该库处理毫秒。我也试过Date.parse但总是得到NaN。
针对此问题的任何解决方案?谢谢
答案 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])