我正试图从我的时间戳中得到一个日期(就像格式: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()
功能是在给定日期添加一天。我已经尝试了不同的输入,但我总是在一天内添加结果。我试过谷歌搜索和搜索堆栈溢出,但无法得到一个有效的答案。任何人都可以告诉我为什么会发生这种情况以及如何解决这个问题?
谢谢, Riswan
答案 0 :(得分:1)
这是你的当地时区甩掉了价值。您可以找到有关UTC here的更多信息。
toUTCString
返回的值是UTC时区中美式英语中的可读字符串。返回值的格式可能有所不同 根据平台。最常见的返回值是RFC-1123 格式化日期戳,这是RFC-822的略微更新版本 日期戳。
var value = "2012-08-31T18:30:00";
var date = new Date(value);
date = date.toUTCString()
<强> EXAMPLE 强>
修改强>:
我可以从您发布的评论中收集到的内容,您可能正在寻找更像 THIS EXAMPLE 的内容:
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);
答案 1 :(得分: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)
答案 2 :(得分:0)
因为时间戳的值是GMT,Date()
返回本地时间戳。
使用date.toGMTString()
将其保留为GMT格式。
答案 3 :(得分:0)
Sat Sep 01 2012 00:00:00 GMT+0530
位于GMT + 5h30
实际上2012-08-31T18:30:00
加上 5h30