我有一组单独的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 " ; }
})
我很好奇我是否真的把数据转换成毫秒。同样,如果我以毫秒为单位得到今天的日期。
Thanks in advance
编辑:示例- http://jsfiddle.net/xwZjN/84/
要获取日期字符串自epoch以来的毫秒数,使用Date.parse()
:
// ...
var k = Date.parse( d.created );
// ...
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);
如果你的字符串是mm:ss的形式,按照程序解决,
var t = "08:00";
var r = Number(t.split(':')[0])*60+Number(t.split(':')[1])*1000;
console.log(r)
var timeInString = "99:99:99:99"; // Any value here
var milliseconds;
if (timeInString.split(":").length === 2) {
/* For MM:SS */
milliseconds =
Number(timeInString.split(":")[0]) * 60000 +
Number(timeInString.split(":")[1]) * 1000;
} else if (timeInString.split(":").length === 3) {
/* For HH:MM:SS */
milliseconds =
Number(timeInString.split(":")[0]) * 3600000 +
Number(timeInString.split(":")[1]) * 60000 +
Number(timeInString.split(":")[2]) * 1000;
} else if (timeInString.split(":").length === 4) {
/* For DD:HH:MM:SS */
milliseconds =
Number(timeInString.split(":")[0]) * 86400000 +
Number(timeInString.split(":")[1]) * 3600000 +
Number(timeInString.split(":")[2]) * 60000 +
Number(timeInString.split(":")[3]) * 1000;
}
console.log(`Milliseconds in ${timeInString} - ${milliseconds}`);