将字符串时间格式转换为时间

时间:2014-07-30 13:21:35

标签: javascript sharepoint

我正在从SharePoint获取日期时间(时间字段),我有这个输出=> 2014-07-30T15:00:00Z

如何才能使这个时间成为有效时间。即使时区与我选择的值不一致也是如此。

2 个答案:

答案 0 :(得分:2)

没有理由转换它!

这似乎是一个有效的ISO8601格式时刻! 所以你可以使用new Date("2014-07-30T15:00:00Z")来获得一个有效的JS Date对象。

请注意:末尾的Z表示其在UTC TimeZone中。由于JS始终在本地TimeZone中工作,因此它会将此UTC值转换为相应的本地时间。所以对我来说(目前在UTC + 2)我将得到以下内容:

var myDate = new Date("2014-07-30T15:00:00Z");
myDate; // Wed Jul 30 2014 17:00:00 GMT+0200 (Mitteleuropäische Sommerzeit)
myDate.getTimezoneOffset(); // -120
myDate.toISOString(); // "2014-07-30T15:00:00.000Z"

正如您所看到的,用户的格式化信息是本地格式。使用Date上的UTC函数来获取和操作UTC信息。

myDate.getUTCHours()

一般来说,如果你在JS中处理Dates,请查看moment.js(http://momentjs.com/

答案 1 :(得分:0)

可能有些javascript GURU会告诉你我的方法是错误的,但最简单的方法是将值提取到不同的变量然后你可以随心所欲地做任何事情。

这是一个简单的例子:

var YourGivenTime = "2014-07-30T15:00:00Z";
var d = YourGivenTime.replace(/\T/g, "-").replace(/\Z/g, "").split('-');
// ["2014", "07", "30", "15:00:00"]

var Year = d[0];
var Day = d[1];
var Month = d[2];
var Time = d[3];

console.log ("Year - " + Year);
console.log ("Day - " + Day);
console.log ("Month - " + Month);
console.log ("Time - " + Time);

请注意,那些console.log行不是强制性的,它们仅用于在浏览器控制台中显示结果。

BR的