json datetime到javascript datetime的日期错误

json datetime到javascript datetime的日期错误,javascript,json,datetime,epoch,Javascript,Json,Datetime,Epoch,我试图以JSON的形式将服务器上的datetime转换成HighChart中可以使用的东西,但我总是选错了日期 var json = {"lastMinute":"2013-05-06 15:46:00"}; // GMT var lastMinute = json.lastMinute; var a = lastMinute.split(' '); var d = a[0].split('-'); var t = a[1].split(':'); var date = new Date(d[

我试图以JSON的形式将服务器上的datetime转换成HighChart中可以使用的东西,但我总是选错了日期

var json = {"lastMinute":"2013-05-06 15:46:00"}; // GMT

var lastMinute = json.lastMinute;
var a = lastMinute.split(' ');
var d = a[0].split('-');
var t = a[1].split(':');
var date = new Date(d[0],d[1],d[2],t[0],t[1],t[2]);

// NEED TO CONVERT TO LOCALTIME
此输出:2013年6月6日星期四15:46:00 GMT-0700(PDT)


有人能帮我摆脱痛苦,告诉我我做错了什么愚蠢的简单事情吗?

在js中,月份从0开始,而不是从1开始

var json = {"lastMinute":"2013-05-06 15:46:00"}; // GMT

var lastMinute = json.lastMinute;
var a = lastMinute.split(' ');
var d = a[0].split('-');
var t = a[1].split(':');
var date = new Date(d[0],d[1]-1,d[2],t[0],t[1],t[2]);

在js中,月份从0开始,而不是从1开始

var json = {"lastMinute":"2013-05-06 15:46:00"}; // GMT

var lastMinute = json.lastMinute;
var a = lastMinute.split(' ');
var d = a[0].split('-');
var t = a[1].split(':');
var date = new Date(d[0],d[1]-1,d[2],t[0],t[1],t[2]);
您可以使用Datejs()库。这是非常有用的,你有准确的方法:

Date.parseExact("10/15/2004", "M/d/yyyy");
您可以使用Datejs()库。这是非常有用的,你有准确的方法:

Date.parseExact("10/15/2004", "M/d/yyyy");

要在JavaScript中解析和格式化日期,请使用库

您可以明确地了解UTC,这在底层浏览器中非常有效

var m = moment.utc('2013-05-06 15:46:00');
这些值看起来像是ISO8601格式(没有
T
)。因此,您只需要使用上面的代码就可以了。但如果你想更精确,你可以:

var m = moment.utc('2013-05-06 15:46:00', 'YYYY-MM-DD HH:mm:ss');
我建议将它作为一个
时刻
保持尽可能长的时间。它们的格式非常好。但如果您需要将其作为javascript日期返回,只需执行以下操作:

var date = m.toDate();

要在JavaScript中解析和格式化日期,请使用库

您可以明确地了解UTC,这在底层浏览器中非常有效

var m = moment.utc('2013-05-06 15:46:00');
这些值看起来像是ISO8601格式(没有
T
)。因此,您只需要使用上面的代码就可以了。但如果你想更精确,你可以:

var m = moment.utc('2013-05-06 15:46:00', 'YYYY-MM-DD HH:mm:ss');
我建议将它作为一个
时刻
保持尽可能长的时间。它们的格式非常好。但如果您需要将其作为javascript日期返回,只需执行以下操作:

var date = m.toDate();


该死-你完全正确,我知道这一点。看,我说这太简单了。该死,你完全正确,我知道这一点。看到了吗?我说它太简单了。在Date.js团队能够发布稳定的版本之前,我不建议使用它。从2007年起,他们仍然在“阿尔法-1”中!试试吧。它非常稳定,两年来都没有更新过但我同意你的看法,他们必须去掉alpha标签!我希望如此。他们有一些好主意。最后一次代码签入是2008年11月。如果它对你有用-很好,但是当作者自己没有信心称之为稳定时,我就不可能把它投入生产。另一方面,Moment要成熟得多,并且有在线单元测试来证明这一点。我试图避免使用任何库或外部插件,并坚持使用好的老式JavaScript。在Date.js团队能够发布稳定的版本之前,我不建议使用它。从2007年起,他们仍然在“阿尔法-1”中!试试吧。它非常稳定,两年来都没有更新过但我同意你的看法,他们必须去掉alpha标签!我希望如此。他们有一些好主意。最后一次代码签入是2008年11月。如果它对你有用-很好,但是当作者自己没有信心称之为稳定时,我就不可能把它投入生产。另一方面,Moment更为成熟,并有在线单元测试来证明这一点。我试图避免使用任何库或外部插件,而坚持使用老式的JavaScript。json中的datetime来自一个数据库,该数据库在可用数据的最后一分钟进行更新(四舍五入)。我的下一个新任务是使用getTimezoneOffset()将其从服务器GMT转换为本地时间,这似乎还有一个小时。@jbolanos-请注意
getTimezoneOffset
是您可能期望的相反符号。还要注意夏令时的偏移差异。如果您还有一个小时的休息时间(无论是否使用momentjs),请更新您的原始问题或打开一个新问题,以便我们可以查看更多详细信息。谢谢。是的-我做了一个变量来设置DST true或false(将是手动的),如果为true,则在getTimezoneOffset()中添加60。@jbolanos-
getTimezoneOffset
将根据日期的值为DST进行调整。但它假设日期已经是本地的,而不是UTC。看看它是如何迅速变得复杂的?Momentjs是您的朋友-really.true-但DST的服务器时间不会更改-它锁定为GMT json中的日期时间来自一个数据库,该数据库会在最后一分钟更新可用数据(四舍五入)。我的下一个新任务是使用getTimezoneOffset()将其从服务器GMT转换为本地时间,这似乎还有一个小时。@jbolanos-请注意
getTimezoneOffset
是您可能期望的相反符号。还要注意夏令时的偏移差异。如果您还有一个小时的休息时间(无论是否使用momentjs),请更新您的原始问题或打开一个新问题,以便我们可以查看更多详细信息。谢谢。是的-我做了一个变量来设置DST true或false(将是手动的),如果为true,则在getTimezoneOffset()中添加60。@jbolanos-
getTimezoneOffset
将根据日期的值为DST进行调整。但它假设日期已经是本地的,而不是UTC。看看它是如何迅速变得复杂的?Momentjs是你的朋友-真的。真的-但是DST的服务器时间没有改变-它被锁定为GMTOne单词:我喜欢moment.js,但我们目前正在开发KISS。我使用moment.js(和jQuery和..),因为我相信(因此,KISS?)。亲吻的一部分是让别人在你面前遇到(并解决)问题。我喜欢使用产生的API来抽象问题。一个词:我喜欢moment.js,但我们目前正在开发KISS。我使用moment.js(以及jQuery和..),因为我相信(因此,KISS?)。亲吻的一部分是让别人在你面前遇到(并解决)问题。我喜欢使用产生的API来抽象问题。