0

我没有使用 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);
            }) ;
4

3 回答 3

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]);
于 2013-04-07T13:58:02.790 回答
1

date.js不再更新,事实上,网站对我来说已经关闭了。我读过它的最佳替代品是MomentJS。根据解析

moment().format('1995-02-23 12:14:16', 'YYYY-MM-DD hh:mm:ss');
于 2015-04-28T11:44:52.357 回答
0

我有一个类似的问题。我最终包含了 date.js(将其作为脚本包含在内,它将覆盖 date.parse() 函数)。

然而,为了让它在 HighStocks 中工作,我需要将结果转换为毫秒。如果 dateString 包含 date.js 可以转换的格式之一的日期,则

dateString= Date.parse(dateString);

仅适用于 Chrome,但

dateString= Date.parse(dateString).getTime();

将浏览器提供的任何结果转换为毫秒,到目前为止它对我有用......

于 2013-08-29T05:29:54.683 回答