Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
date.js解析方法覆盖Javascript解析方法_Javascript_Date_Datejs - Fatal编程技术网

date.js解析方法覆盖Javascript解析方法

date.js解析方法覆盖Javascript解析方法,javascript,date,datejs,Javascript,Date,Datejs,我将date.js库包含在我的站点中,因为我需要它的功能 不过,我刚刚意识到,标准Javascriptparse()方法被它覆盖了 我试图在Highcharts中构建一个折线图,数据系列希望第一个元素以毫秒为单位(他们的演示显示他们使用Date.UTC()方法来实现这一点,但我的数据以不同的格式返回) 除了执行一系列字符串操作以将数据转换为Date.UTC可以识别的格式之外,还有其他方法可以在加载Date.js时获得标准Javascriptparse()功能吗?没有,这是Date.js的预期设计

我将
date.js
库包含在我的站点中,因为我需要它的功能

不过,我刚刚意识到,标准Javascript
parse()
方法被它覆盖了

我试图在Highcharts中构建一个折线图,数据系列希望第一个元素以毫秒为单位(他们的演示显示他们使用
Date.UTC()
方法来实现这一点,但我的数据以不同的格式返回)


除了执行一系列字符串操作以将数据转换为
Date.UTC
可以识别的格式之外,还有其他方法可以在加载
Date.js
时获得标准Javascript
parse()
功能吗?

没有,这是Date.js的预期设计。它添加到日期对象的“原型”中。有些人讨厌它,有些人喜欢它-但您已经发现了这种设计的一个缺点。

您可以告诉Highcharts不要使用UTC日期:

Highcharts.setOptions({
    global: {
        useUTC: false
    }
});

您应该在创建图表之前执行此操作。这样,您就不必担心将日期转换为UTC,这会更容易。

我知道这不是解决您问题的直接方法,但它可能会有所帮助

如果您想要一个功能齐全的日期库,它不会修改本机
date
对象,那么我编写了一个名为Moment.js的库

它提供了DateJS提供的许多功能(格式化、解析、操作、timeago、i18n等),但它更小、更快,并且不会破坏本机日期原型


在我问了这个问题之后,我继续这样做:

d = Date.parse(data);
            y = d.getFullYear();
            m = d.getMonth();
            d = d.getDate();
            dUTC = Date.UTC(y, m, d);

但现在我将尝试您的建议。

如果我这样做,我不明白Highcharts希望看到的日期是什么-实际的日期对象?文档没有指定。@earachefl:日期值将以毫秒为单位,例如,如果您有一个日期对象
d
,则
d.getTime()
将以毫秒为单位给出日期值,这是您输入Highcharts的值,无论您是否使用
useUTC:false
。不同之处在于,如果您使用了
useUTC:true
,那么您需要先将该日期转换为UTC日期,然后获得毫秒并输入到Highcharts。在我发现您的文档有点不对劲后,终于让它起作用了-它说使用矩.day(1)将日期设置为1,但应该是矩.date(1).你不应该在问题中提供答案。我已经把答案作为一个社区wiki放到了一个实际的答案中。