将字符串转换为时间对象



我有像"2014-06-12T23:00:00"这样的字符串,我想把这些字符串变成时间对象,以便能够添加小时。

我尝试了几个转换和解析,但没有工作。把它们变成时间对象的正确方法是什么?

您的字符串具有有效的格式,因此您可以通过简单地键入

将其转换为Date对象:
var date = new Date("2014-06-12T23:00:00");

但是,该字符串将被解释为UTC字符串。当您在客户机中使用它时,将使用该值的本地表示形式。如果您在运行中欧时间的计算机上运行该代码,其中时区是UTC+1h,并且6月12日在夏令时期间,例如,添加额外的小时,date.getDate()将正确地产生13(而不是12),因为UTC时间6月12日晚上11点实际上是当地时间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());

在date对象中添加小时:

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

您对某个时区感兴趣吗?

相关内容

  • 没有找到相关文章

最新更新