2017-05-05 81 views
0

我從json API獲取時間類似於「DOB」:「/ Date(862588800000 + 0800)/」,但我必須將其轉換爲類似Date格式的日期:04/28/2017 10:20 :05(MM/dd/yyyy HH:mm:sss)。需要幫助角度2中的日期轉換CST

回答

2

您可以先將值解析爲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?

+0

真棒男人..非常感謝。你能否在1997年5月2日再做一些改變。目前我收到星期五五月02 1997 13:30:00 GMT + 0530(IST) – Anuj

+0

我做到了。感謝幫助。 – Anuj