我对jQuery没有经验,所以我陷入了一个问题。 问题是在Chrome中我的代码运行正常,但在Firefox中则没有。 似乎date.parse命令不起作用,因为“tsv”数据没问题,但“日期”数据没有。
代码如下。如果有人可以帮助我,请告诉我......
jQuery.get('data.php', null, function(tsv) {
var lines = [];
traffic = [];
try {
// split the data return into lines and parse them
tsv = tsv.split(/\n/g);
jQuery.each(tsv, function(i, line) {
line = line.split(/\t/);
var date = Date.parse(line[0] +' UTC');
traffic.push([
date,
parseFloat(line[1].replace(',', ' '), 10)
]);
}) ;
} catch (e) { }
options.series[0].data = traffic;
chart = new Highcharts.Chart(options);
// alert(tsv);
// alert(traffic);
// alert(date);
}) ;
答案 0 :(得分:5)
Firefox不支持以2013-04-06 22:46:08格式解析日期。
您可以使用date.js库来获取对此格式的支持。
如果您不想使用date.js,则下面的函数会将日期从yyyy-mm-dd HH:mm:ss格式解析为UTC。
function parseDateUTC(input) {
var reg = /^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/;
var parts = reg.exec(input);
return parts ? (new Date(Date.UTC(parts[1], parts[2] -1, parts[3], parts[4], parts[5],parts[6]))) : null
}
然后您只需将代码更改为
var date = parseDateUTC(line[0]);
答案 1 :(得分:1)
date.js
已不再更新,事实上,该网站已关闭。我已经读过,最好的替代品是MomentJS。根据{{3}}
moment().format('1995-02-23 12:14:16', 'YYYY-MM-DD hh:mm:ss');
答案 2 :(得分:0)
我有类似的问题。我最终包括date.js(包含这个作为脚本,它将覆盖date.parse()函数)。
然而,为了使它在HighStocks中工作,我需要将结果转换为毫秒。如果dateString包含date.js可以转换的格式之一的日期,那么
dateString= Date.parse(dateString);
仅适用于Chrome,但
dateString= Date.parse(dateString).getTime();
将浏览器提供的任何结果转换为毫秒,到目前为止它对我有用......