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