0

我正在尝试从我拥有的时间戳中获取日期(类似于格式 : 2012-08-31T18:30:00,来自日期选择器)

   var value = "2012-08-31T18:30:00";

   var date = new Date(value);

这个(日期)的结果是:Sat Sep 01 2012 00:00:00 GMT+0530 (India Standard Time)

这里Date()的功能是在给定日期上添加一天。我已经尝试过不同的输入,但总是在添加一天后得到结果。我也尝试过谷歌搜索并搜索堆栈溢出,但无法得到有效答案。谁能告诉我为什么会这样以及如何解决这个问题?

谢谢,里斯万

4

4 回答 4

1

这是您当地的时区,它正在贬低价值。您可以在此处找到有关 UTC的更多信息。

返回的值toUTCString是 UTC 时区的美式英语可读字符串。返回值的格式可能因平台而异。最常见的返回值是 RFC-1123 格式的日期戳,它是 RFC-822 日期戳的略微更新版本。

var value = "2012-08-31T18:30:00";
var date = new Date(value);
date = date.toUTCString()

例子

编辑

我可以从您发布的评论中收集到的信息,您可能正在寻找更像这个示例的内容:

var value = "2012-08-31T18:30:00"; //string value
var dateTime = value.split("T"); //split on T

var date = dateTime[0]; 
date = new Date(date); //set the date

var time = dateTime[1];
time = time.split(":"); //get the time into an array

//use set hours to set the time to 18:30:00:00 (hh:mm:ss:mm)
date.setHours(time[0], time[1], time[2], 0)

console.log(date);
于 2012-10-03T13:37:59.973 回答
0

“2012-08-31T18:30:00”指的是格林威治标准时间 (GMT) / UTC。

"2012-08-31T18:30:00" + India (UTC+5:30) = Sat Sep 01 2012 00:00:00 GMT+0530 (India Standard Time)
于 2012-10-03T13:35:05.603 回答
0

因为时间戳的值是GMT,并且Date()返回本地时间戳。

用于date.toGMTString()将其保持为 GMT 格式。

于 2012-10-03T13:35:58.717 回答
0

Sat Sep 01 2012 00:00:00 GMT+0530 格林威治标准时间 + 5h30

它实际上是2012-08-31T18:30:00加上5h30

于 2012-10-03T13:36:52.250 回答