0
我从json API获取时间类似于“DOB”:“/ Date(862588800000 + 0800)/”,但我必须将其转换为类似Date格式的日期:04/28/2017 10:20 :05(MM/dd/yyyy HH:mm:sss)。需要帮助角度2中的日期转换CST
我从json API获取时间类似于“DOB”:“/ Date(862588800000 + 0800)/”,但我必须将其转换为类似Date格式的日期:04/28/2017 10:20 :05(MM/dd/yyyy HH:mm:sss)。需要帮助角度2中的日期转换CST
您可以先将值解析为Date对象,然后格式化输出。
第一个数字部分看起来是自纪元(1970-01-01)以来的毫秒时间值,后面是HHMM中的时区偏移量。纪元前时间值是负的,所以正则表达式来获得部分可能是:
/[+-]?\d+/g
应同时匹配的时间价值和偏移。
的时间值可以通过那么这个偏移量用于创建日期调整(传递给Date构造函数值必须是数字,或者如果它是一个字符串,它会被解析):
function parseDate(s) {
// Get the parts
var b = s.match(/[+-]?\d+/g);
// If appears invalid, return invalid Date
if (!b || b.length != 2) return new Date(NaN);
// Get sign of offset
var sign = +b[1] < 0? -1 : 1;
// Convert offset to milliseconds
// Multiplication converts the strings to numbers so + adds
var offset = sign * b[1].substr(1,2)*3.6e6 + b[1].substr(3,2)*6e4;
// Adjust time value by offset, create a Date and return it
// Subtraction also converts the time value to a number
return new Date(b[0] - offset);
}
var s = '/Date(862588800000+0800)/';
console.log(parseDate(s));
验证也可以使用正则表达式,如:
/\(-?\d+[+-]\d{4}\)/.test(s)
至于格式化日期,疗法e已经有很多问题了,请参阅Where can I find documentation on formatting a date in JavaScript?
真棒男人..非常感谢。你能否在1997年5月2日再做一些改变。目前我收到星期五五月02 1997 13:30:00 GMT + 0530(IST) – Anuj
我做到了。感谢帮助。 – Anuj