将字符串时间转换为毫秒

时间:2013-03-03 21:34:06

标签: javascript datetime d3.js timestamp milliseconds

我有一组单独的json数据,它们每个都有一个时间戳,表示以这种确切格式创建它的时间,例如

 [ {"Name": "Jake", "created":"2013-03-01T19:54:24Z" },
   {"Name": "Rock", "created":"2012-03-01T19:54:24Z" } ]

因此,我希望在一个函数中使用'created'来计算如果数据从今天开始输入60天或更少,它将以斜体显​​示。但是,我试过的功能没有效果。我试图在几毫秒内完成计算:

     node.append("text")
    .text(function(d) { return d.Name; })
    .style("font", function (d)
           { var date = new Date(d.created);
             var k = date.getMilliseconds;
             var time = new Date ();
             var n = time.getTime();

       if(k > (n - 5184000) )  {return " Arial 11px italic"; }
                     else { return " Arial 11px " ; }


        })

我很好奇我是否真的将数据转换为毫秒。另外,如果我以毫秒为单位获取今天的日期。

提前致谢

编辑:示例 - http://jsfiddle.net/xwZjN/84/

3 个答案:

答案 0 :(得分:11)

要获取与您的日期字符串相同的纪元以来的毫秒数,请使用Date.parse()

// ...
var k = Date.parse( d.created );
// ...

答案 1 :(得分:5)

按照程序解决,

var t = "08:00";
var r = Number(t.split(':')[0])*60+Number(t.split(':')[1])*1000;
console.log(r)

答案 2 :(得分:0)

let t = "08:30"; // hh:mm
let ms = Number(t.split(':')[0]) * 60 * 60 * 1000 + Number(t.split(':')[1]) * 60 * 1000;
console.log(ms);

let t = "08:30"; // mm:ss
let ms = Number(t.split(':')[0]) * 60 * 1000 + Number(t.split(':')[1]) * 1000;
console.log(ms);