将字符串转换为时间对象

时间:2014-05-20 08:02:10

标签: jquery datetime

我有类似" 2014-06-12T23:00:00"的字符串,我想将这些字符串转换为时间对象,以便能够为其添加小时数。

我尝试了几次转换和解析,但没有工作。将这些转化为时间物体的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

您的字符串格式有效,因此您只需键入以下内容即可将其转换为Date对象:

var date = new Date("2014-06-12T23:00:00");

但是,该字符串将被解释为UTC字符串。在客户端中使用它时,将使用该值的本地表示。如果您在运行中欧时间的计算机上运行该代码,其中时区为UTC + 1h,而6月12日为夏令时,则添加额外的小时,例如date.getDate()将正确收益率13(不是12),截至6月12日晚上11点UTC实际上是当地时间6月13日凌晨1点。

如果您不希望将您提供的字符串解释为UTC时间,则可以指定时区:

var date = new Date("2014-06-12T23:00:00 GMT+0200");

如果您希望日期始终被视为当地时间,您可以手动调整偏移量:

var date = new Date("2014-06-12T23:00:00");
date.setMinutes(date.getMinutes() + date.getTimezoneOffset());

答案 1 :(得分:1)

以下是如何为日期对象添加小时数:

var k = "2014-06-12T23:00:00";
var t = new Date( k.replace('T', ' ') ).getTime();
var n = t + 5 * 60 * 60 * 1000; //add 5 hours;
console.log( k, new Date( t ), new Date( n ) );

JS FIDDLE DEMO

您对特定时区感兴趣吗?